(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_22 (Sun Microsystems Inc.) Main-Class: QuicksortRec/QuicksortRec
package QuicksortRec;

public class List {

int value;
List next;

public List() {}

public List(int value, List next) {
this.value = value;
this.next = next;
}

public static List copy(List x) {
if (x == null) return null;
else return new List(x.value,copy(x.next));
}

public static String print(List t){
if (t == null) return "";
else return t.value + " " + print(t.next);
}
}


package QuicksortRec;
public class QuicksortRec {
public static List append(List xs, List ys) {
if (xs == null) return ys;
else return append(xs.next, ys);
}

public static List sortedLow(List xs, int n){
if (xs == null) {
return null;
} else if (xs.value <= n) {
return quicksort(new List(xs.value, sortedLow(xs.next,n)));
} else {
return sortedLow(xs.next,n);
}
}

public static List sortedHigh(List xs, int n){
if (xs == null) {
return null;
} else if (xs.value > n) {
return quicksort(new List(xs.value, sortedHigh(xs.next,n)));
} else {
return sortedHigh(xs.next,n);
}
}

public static List quicksort(List xs){
if (xs == null) {
return null;
} else {
List lows = sortedLow(xs.next,xs.value);
List highs = sortedHigh(xs.next,xs.value);
return append(lows,highs);
}
}

public static void main(String[] args) {
Random.args = args;
List xs = createList(Random.random());
List ys = quicksort(xs);
}


public static List createList(int l) {
if (l <= 0) {
return null;
} else {
return new List(Random.random(), createList(l-1));
}
}
}


package QuicksortRec;

public class Random {
static String[] args;
static int index = 0;

public static int random() {
if (args.length <= index) {
return 0;
}
String string = args[index];
index++;
if (string == null) {
return 0;
}
return string.length();
}
}


(1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

(2) Obligation:

FIGraph based on JBC Program:
QuicksortRec.QuicksortRec.main([Ljava/lang/String;)V: Graph of 109 nodes with 0 SCCs.

QuicksortRec.QuicksortRec.createList(I)LQuicksortRec/List;: Graph of 145 nodes with 0 SCCs.

QuicksortRec.QuicksortRec.quicksort(LQuicksortRec/List;)LQuicksortRec/List;: Graph of 72 nodes with 0 SCCs.

QuicksortRec.QuicksortRec.sortedLow(LQuicksortRec/List;I)LQuicksortRec/List;: Graph of 86 nodes with 0 SCCs.

QuicksortRec.QuicksortRec.sortedHigh(LQuicksortRec/List;I)LQuicksortRec/List;: Graph of 86 nodes with 0 SCCs.

QuicksortRec.QuicksortRec.append(LQuicksortRec/List;LQuicksortRec/List;)LQuicksortRec/List;: Graph of 5 nodes with 0 SCCs.


(3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Logs:


Log for SCC 0:

Generated 183 rules for P and 92 rules for R.


Combined rules. Obtained 20 rules for P and 21 rules for R.


Filtered ground terms:


2296_1_quicksort_InvokeMethod(x1, x2, x3, x4) → 2296_1_quicksort_InvokeMethod(x1, x3, x4)
QuicksortRec.List(x1, x2, x3) → QuicksortRec.List(x2, x3)
2310_0_sortedHigh_NONNULL(x1, x2, x3, x4) → 2310_0_sortedHigh_NONNULL(x2, x3, x4)
2406_0_sortedLow_Return(x1, x2, x3, x4) → 2406_0_sortedLow_Return(x2, x3)
2380_0_sortedLow_Return(x1, x2, x3, x4) → 2380_0_sortedLow_Return(x2, x3)
2212_0_sortedLow_Return(x1, x2) → 2212_0_sortedLow_Return
2155_0_sortedLow_Return(x1, x2) → 2155_0_sortedLow_Return
1825_0_quicksort_NONNULL(x1, x2, x3) → 1825_0_quicksort_NONNULL(x2, x3)
2520_1_sortedHigh_InvokeMethod(x1, x2, x3, x4, x5, x6, x7, x8) → 2520_1_sortedHigh_InvokeMethod(x1, x2, x3, x6, x7, x8)
2662_0_sortedHigh_Return(x1, x2, x3, x4) → 2662_0_sortedHigh_Return(x2, x3)
2642_0_sortedHigh_Return(x1, x2, x3, x4) → 2642_0_sortedHigh_Return(x2, x3)
2536_0_sortedHigh_Return(x1, x2) → 2536_0_sortedHigh_Return
2483_0_sortedHigh_Return(x1, x2) → 2483_0_sortedHigh_Return
2345_0_sortedHigh_Return(x1, x2, x3, x4) → 2345_0_sortedHigh_Return(x3)
Cond_2310_0_sortedHigh_NONNULL1(x1, x2, x3, x4, x5) → Cond_2310_0_sortedHigh_NONNULL1(x1, x3, x4, x5)
Cond_2310_0_sortedHigh_NONNULL(x1, x2, x3, x4, x5) → Cond_2310_0_sortedHigh_NONNULL(x1, x3, x4, x5)
2139_1_quicksort_InvokeMethod(x1, x2, x3, x4) → 2139_1_quicksort_InvokeMethod(x1, x4)
2045_0_sortedLow_Return(x1, x2, x3, x4) → 2045_0_sortedLow_Return(x3)
2195_1_sortedLow_InvokeMethod(x1, x2, x3, x4, x5, x6, x7, x8) → 2195_1_sortedLow_InvokeMethod(x1, x2, x3, x6, x7, x8)
2076_0_sortedLow_GT(x1, x2, x3, x4, x5) → 2076_0_sortedLow_GT(x2, x3, x4, x5)
Cond_2076_0_sortedLow_GT1(x1, x2, x3, x4, x5, x6) → Cond_2076_0_sortedLow_GT1(x1, x3, x4, x5, x6)
Cond_2076_0_sortedLow_GT(x1, x2, x3, x4, x5, x6) → Cond_2076_0_sortedLow_GT(x1, x3, x4, x5, x6)
2588_0_quicksort_Return(x1, x2) → 2588_0_quicksort_Return
2329_0_quicksort_Return(x1, x2) → 2329_0_quicksort_Return
1894_0_quicksort_Return(x1, x2, x3) → 1894_0_quicksort_Return

Filtered duplicate args:


2310_0_sortedHigh_NONNULL(x1, x2, x3) → 2310_0_sortedHigh_NONNULL(x2, x3)
1825_0_quicksort_NONNULL(x1, x2) → 1825_0_quicksort_NONNULL(x2)
2520_1_sortedHigh_InvokeMethod(x1, x2, x3, x4, x5, x6) → 2520_1_sortedHigh_InvokeMethod(x1, x2, x4, x5, x6)
2631_1_sortedHigh_InvokeMethod(x1, x2, x3, x4) → 2631_1_sortedHigh_InvokeMethod(x1, x3, x4)
Cond_2310_0_sortedHigh_NONNULL1(x1, x2, x3, x4) → Cond_2310_0_sortedHigh_NONNULL1(x1, x3, x4)
Cond_2310_0_sortedHigh_NONNULL(x1, x2, x3, x4) → Cond_2310_0_sortedHigh_NONNULL(x1, x3, x4)
2195_1_sortedLow_InvokeMethod(x1, x2, x3, x4, x5, x6) → 2195_1_sortedLow_InvokeMethod(x1, x2, x4, x5, x6)
2364_1_sortedLow_InvokeMethod(x1, x2, x3, x4) → 2364_1_sortedLow_InvokeMethod(x1, x3, x4)
2076_0_sortedLow_GT(x1, x2, x3, x4) → 2076_0_sortedLow_GT(x1, x3, x4)
Cond_2076_0_sortedLow_GT1(x1, x2, x3, x4, x5) → Cond_2076_0_sortedLow_GT1(x1, x2, x4, x5)
Cond_2076_0_sortedLow_GT(x1, x2, x3, x4, x5) → Cond_2076_0_sortedLow_GT(x1, x2, x4, x5)

Filtered unneeded arguments:


2631_1_sortedHigh_InvokeMethod(x1, x2, x3) → 2631_1_sortedHigh_InvokeMethod(x1, x3)
2643_1_sortedHigh_InvokeMethod(x1, x2, x3, x4) → 2643_1_sortedHigh_InvokeMethod(x1, x2, x4)

Filtered all free variables:


2642_0_sortedHigh_Return(x1, x2) → 2642_0_sortedHigh_Return(x1)
2662_0_sortedHigh_Return(x1, x2) → 2662_0_sortedHigh_Return(x1)

Combined rules. Obtained 20 rules for P and 21 rules for R.


Finished conversion. Obtained 20 rules for P and 21 rules for R. System has predefined symbols.




Log for SCC 1:

Generated 51 rules for P and 104 rules for R.


Combined rules. Obtained 7 rules for P and 19 rules for R.


Filtered ground terms:


567_1_createList_InvokeMethod(x1, x2, x3, x4, x5) → 567_1_createList_InvokeMethod(x1, x5)
QuicksortRec.List(x1) → QuicksortRec.List
480_0_createList_GT(x1, x2, x3) → 480_0_createList_GT(x2, x3)
Cond_526_1_createList_InvokeMethod(x1, x2, x3, x4, x5) → Cond_526_1_createList_InvokeMethod(x1, x2, x3)
526_0_random_GT(x1, x2, x3) → 526_0_random_GT(x2, x3)
526_1_createList_InvokeMethod(x1, x2, x3, x4) → 526_1_createList_InvokeMethod(x1, x2)
836_1_createList_InvokeMethod(x1, x2, x3, x4, x5) → 836_1_createList_InvokeMethod(x1, x4, x5)
Cond_578_1_createList_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_578_1_createList_InvokeMethod1(x1, x2, x3)
578_0_random_IntArithmetic(x1, x2, x3, x4) → 578_0_random_IntArithmetic(x2, x3)
578_1_createList_InvokeMethod(x1, x2, x3, x4) → 578_1_createList_InvokeMethod(x1, x2)
Cond_578_1_createList_InvokeMethod(x1, x2, x3, x4, x5) → Cond_578_1_createList_InvokeMethod(x1, x2, x3)
Cond_540_1_createList_InvokeMethod(x1, x2, x3, x4, x5) → Cond_540_1_createList_InvokeMethod(x1, x2, x3)
540_0_random_ArrayAccess(x1, x2, x3) → 540_0_random_ArrayAccess(x2, x3)
540_1_createList_InvokeMethod(x1, x2, x3, x4) → 540_1_createList_InvokeMethod(x1, x2)
Cond_524_1_createList_InvokeMethod(x1, x2, x3, x4, x5) → Cond_524_1_createList_InvokeMethod(x1, x2, x3)
524_0_random_GT(x1, x2, x3) → 524_0_random_GT(x2, x3)
524_1_createList_InvokeMethod(x1, x2, x3, x4) → 524_1_createList_InvokeMethod(x1, x2)
Cond_480_0_createList_GT1(x1, x2, x3, x4) → Cond_480_0_createList_GT1(x1, x3, x4)
Cond_480_0_createList_GT(x1, x2, x3, x4) → Cond_480_0_createList_GT(x1, x3, x4)
2113_0_createList_Return(x1, x2) → 2113_0_createList_Return
1628_0_createList_Return(x1, x2) → 1628_0_createList_Return
1538_0_createList_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1538_0_createList_InvokeMethod(x5, x6)
java.lang.ArrayIndexOutOfBoundsException(x1) → java.lang.ArrayIndexOutOfBoundsException
java.lang.IndexOutOfBoundsException(x1) → java.lang.IndexOutOfBoundsException
java.lang.RuntimeException(x1) → java.lang.RuntimeException
java.lang.Exception(x1) → java.lang.Exception
java.lang.Throwable(x1) → java.lang.Throwable
1358_0_createList_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1358_0_createList_InvokeMethod(x6)
1112_0_createList_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1112_0_createList_InvokeMethod(x5, x6)
1095_0_createList_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1095_0_createList_InvokeMethod(x6)
957_0_createList_InvokeMethod(x1, x2, x3, x4, x5) → 957_0_createList_InvokeMethod(x3)
696_0_createList_Return(x1, x2) → 696_0_createList_Return
492_0_createList_Return(x1, x2, x3) → 492_0_createList_Return

Filtered duplicate args:


480_0_createList_GT(x1, x2) → 480_0_createList_GT(x2)
Cond_480_0_createList_GT1(x1, x2, x3) → Cond_480_0_createList_GT1(x1, x3)
Cond_480_0_createList_GT(x1, x2, x3) → Cond_480_0_createList_GT(x1, x3)

Filtered unneeded arguments:


836_1_createList_InvokeMethod(x1, x2, x3) → 836_1_createList_InvokeMethod(x1, x3)

Filtered all non-integer terms:


578_0_random_IntArithmetic(x1, x2) → 578_0_random_IntArithmetic(x2)

Filtered all free variables:


524_1_createList_InvokeMethod(x1, x2) → 524_1_createList_InvokeMethod(x2)
526_1_createList_InvokeMethod(x1, x2) → 526_1_createList_InvokeMethod(x2)
Cond_524_1_createList_InvokeMethod(x1, x2, x3) → Cond_524_1_createList_InvokeMethod(x1, x3)
540_1_createList_InvokeMethod(x1, x2) → 540_1_createList_InvokeMethod(x2)
Cond_540_1_createList_InvokeMethod(x1, x2, x3) → Cond_540_1_createList_InvokeMethod(x1, x3)
578_1_createList_InvokeMethod(x1, x2) → 578_1_createList_InvokeMethod(x2)
Cond_578_1_createList_InvokeMethod(x1, x2, x3) → Cond_578_1_createList_InvokeMethod(x1, x3)
Cond_578_1_createList_InvokeMethod1(x1, x2, x3) → Cond_578_1_createList_InvokeMethod1(x1, x3)
Cond_526_1_createList_InvokeMethod(x1, x2, x3) → Cond_526_1_createList_InvokeMethod(x1, x3)
1538_0_createList_InvokeMethod(x1, x2) → 1538_0_createList_InvokeMethod(x2)

Combined rules. Obtained 2 rules for P and 19 rules for R.


Finished conversion. Obtained 2 rules for P and 19 rules for R. System has predefined symbols.


(4) Complex Obligation (AND)

(5) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
1825_0_quicksort_NONNULL(NULL) → 1894_0_quicksort_Return
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0) → 2155_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2212_0_sortedLow_Return
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x1, java.lang.Object(QuicksortRec.List(NULL, x0))) → 2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2))) → 2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2310_0_sortedHigh_NONNULL(x0, NULL) → 2345_0_sortedHigh_Return(x0)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0) → 2483_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2536_0_sortedHigh_Return
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0))) → 2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2))) → 2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0) → 2329_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2588_0_quicksort_Return

The integer pair graph contains the following rules and edges:
(0): 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])
(1): 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])
(2): 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(x3[2] < x2[2], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])
(3): COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])
(4): 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(x3[4] >= x2[4], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])
(5): COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])
(6): COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])
(7): 2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7])))
(8): 2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8])))
(9): 2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9])))
(10): 2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10])))
(11): 2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11])))
(12): 2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0[12]), java.lang.Object(QuicksortRec.List(NULL, x0[12])), NULL, x0[12]) → 2310_0_SORTEDHIGH_NONNULL(x0[12], NULL)
(13): 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(x2[13] >= x1[13], x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))
(14): COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])
(15): 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(x2[15] < x1[15], x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))
(16): COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])
(17): COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])
(18): 2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18])))
(19): 2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19])))
(20): 2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20])))
(21): 2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21])))
(22): 2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22])))
(23): 2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23]) → 2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))
(24): 2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24]) → 2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))
(25): 2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]) → 2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))
(26): 2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]) → 2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))

(0) -> (12), if ((2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]) →* 2045_0_sortedLow_Return(x0[12]))∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) →* java.lang.Object(QuicksortRec.List(NULL, x0[12])))∧(java.lang.Object(QuicksortRec.List(x0[0], x1[0])) →* NULL)∧(x2[0]* x0[12]))


(0) -> (23), if ((2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]) →* 2155_0_sortedLow_Return)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])))∧(java.lang.Object(QuicksortRec.List(x0[0], x1[0])) →* java.lang.Object(QuicksortRec.List(NULL, x0[23])))∧(x2[0]* x1[23]))


(0) -> (24), if ((2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]) →* 2212_0_sortedLow_Return)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])))∧(java.lang.Object(QuicksortRec.List(x0[0], x1[0])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))∧(x2[0]* x3[24]))


(0) -> (25), if ((2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]) →* 2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]))∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])))∧(java.lang.Object(QuicksortRec.List(x0[0], x1[0])) →* java.lang.Object(QuicksortRec.List(NULL, x0[25])))∧(x2[0]* x1[25]))


(0) -> (26), if ((2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]) →* 2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]))∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])))∧(java.lang.Object(QuicksortRec.List(x0[0], x1[0])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))∧(x2[0]* x3[26]))


(1) -> (2), if ((java.lang.Object(QuicksortRec.List(x0[1], x1[1])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])))∧(x1[1]* x2[2])∧(x2[1]* x3[2]))


(1) -> (4), if ((java.lang.Object(QuicksortRec.List(x0[1], x1[1])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])))∧(x1[1]* x2[4])∧(x2[1]* x3[4]))


(2) -> (3), if ((x3[2] < x2[2]* TRUE)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])))∧(x2[2]* x2[3])∧(x3[2]* x3[3]))


(3) -> (2), if ((java.lang.Object(QuicksortRec.List(x0[3], x1[3])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])))∧(x1[3]* x2[2])∧(x3[3]* x3[2]))


(3) -> (4), if ((java.lang.Object(QuicksortRec.List(x0[3], x1[3])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])))∧(x1[3]* x2[4])∧(x3[3]* x3[4]))


(4) -> (5), if ((x3[4] >= x2[4]* TRUE)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])))∧(x2[4]* x2[5])∧(x3[4]* x3[5]))


(4) -> (6), if ((x3[4] >= x2[4]* TRUE)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])))∧(x2[4]* x2[6])∧(x3[4]* x3[6]))


(5) -> (7), if ((2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]) →* 2045_0_sortedLow_Return(x0[7]))∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])) →* java.lang.Object(QuicksortRec.List(NULL, x1[7])))∧(x2[5]* x1[7])∧(java.lang.Object(QuicksortRec.List(x0[5], x1[5])) →* NULL)∧(x3[5]* x0[7]))


(5) -> (8), if ((2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]) →* 2155_0_sortedLow_Return)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])))∧(x2[5]* x1[8])∧(java.lang.Object(QuicksortRec.List(x0[5], x1[5])) →* java.lang.Object(QuicksortRec.List(NULL, x0[8])))∧(x3[5]* x2[8]))


(5) -> (9), if ((2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]) →* 2212_0_sortedLow_Return)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])))∧(x2[5]* x3[9])∧(java.lang.Object(QuicksortRec.List(x0[5], x1[5])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])))∧(x3[5]* x4[9]))


(5) -> (10), if ((2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]) →* 2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]))∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])))∧(x2[5]* x2[10])∧(java.lang.Object(QuicksortRec.List(x0[5], x1[5])) →* java.lang.Object(QuicksortRec.List(NULL, x0[10])))∧(x3[5]* x1[10]))


(5) -> (11), if ((2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]) →* 2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]))∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])))∧(x2[5]* x4[11])∧(java.lang.Object(QuicksortRec.List(x0[5], x1[5])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])))∧(x3[5]* x3[11]))


(6) -> (2), if ((java.lang.Object(QuicksortRec.List(x0[6], x1[6])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])))∧(x1[6]* x2[2])∧(x3[6]* x3[2]))


(6) -> (4), if ((java.lang.Object(QuicksortRec.List(x0[6], x1[6])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])))∧(x1[6]* x2[4])∧(x3[6]* x3[4]))


(7) -> (0), if ((java.lang.Object(QuicksortRec.List(NULL, x1[7])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))))


(7) -> (1), if ((java.lang.Object(QuicksortRec.List(NULL, x1[7])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))))


(8) -> (0), if ((java.lang.Object(QuicksortRec.List(NULL, x1[8])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))))


(8) -> (1), if ((java.lang.Object(QuicksortRec.List(NULL, x1[8])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))))


(9) -> (0), if ((java.lang.Object(QuicksortRec.List(NULL, x3[9])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))))


(9) -> (1), if ((java.lang.Object(QuicksortRec.List(NULL, x3[9])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))))


(10) -> (0), if ((java.lang.Object(QuicksortRec.List(NULL, x2[10])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))))


(10) -> (1), if ((java.lang.Object(QuicksortRec.List(NULL, x2[10])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))))


(11) -> (0), if ((java.lang.Object(QuicksortRec.List(NULL, x4[11])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))))


(11) -> (1), if ((java.lang.Object(QuicksortRec.List(NULL, x4[11])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))))


(12) -> (13), if ((x0[12]* x2[13])∧(NULL* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(12) -> (15), if ((x0[12]* x2[15])∧(NULL* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(13) -> (14), if ((x2[13] >= x1[13]* TRUE)∧(x2[13]* x2[14])∧(java.lang.Object(QuicksortRec.List(x0[13], x1[13])) →* java.lang.Object(QuicksortRec.List(x0[14], x1[14]))))


(14) -> (13), if ((x2[14]* x2[13])∧(x0[14]* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(14) -> (15), if ((x2[14]* x2[15])∧(x0[14]* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(15) -> (16), if ((x2[15] < x1[15]* TRUE)∧(x2[15]* x2[16])∧(java.lang.Object(QuicksortRec.List(x0[15], x1[15])) →* java.lang.Object(QuicksortRec.List(x0[16], x1[16]))))


(15) -> (17), if ((x2[15] < x1[15]* TRUE)∧(x2[15]* x2[17])∧(java.lang.Object(QuicksortRec.List(x0[15], x1[15])) →* java.lang.Object(QuicksortRec.List(x0[17], x1[17]))))


(16) -> (18), if ((2310_0_sortedHigh_NONNULL(x2[16], x0[16]) →* 2345_0_sortedHigh_Return(x0[18]))∧(java.lang.Object(QuicksortRec.List(x0[16], x1[16])) →* java.lang.Object(QuicksortRec.List(NULL, x1[18])))∧(x1[16]* x1[18])∧(x0[16]* NULL)∧(x2[16]* x0[18]))


(16) -> (19), if ((2310_0_sortedHigh_NONNULL(x2[16], x0[16]) →* 2483_0_sortedHigh_Return)∧(java.lang.Object(QuicksortRec.List(x0[16], x1[16])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])))∧(x1[16]* x1[19])∧(x0[16]* java.lang.Object(QuicksortRec.List(NULL, x0[19])))∧(x2[16]* x2[19]))


(16) -> (20), if ((2310_0_sortedHigh_NONNULL(x2[16], x0[16]) →* 2536_0_sortedHigh_Return)∧(java.lang.Object(QuicksortRec.List(x0[16], x1[16])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])))∧(x1[16]* x3[20])∧(x0[16]* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])))∧(x2[16]* x4[20]))


(16) -> (21), if ((2310_0_sortedHigh_NONNULL(x2[16], x0[16]) →* 2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))))∧(java.lang.Object(QuicksortRec.List(x0[16], x1[16])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])))∧(x1[16]* x2[21])∧(x0[16]* java.lang.Object(QuicksortRec.List(NULL, x0[21])))∧(x2[16]* x1[21]))


(16) -> (22), if ((2310_0_sortedHigh_NONNULL(x2[16], x0[16]) →* 2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))))∧(java.lang.Object(QuicksortRec.List(x0[16], x1[16])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])))∧(x1[16]* x4[22])∧(x0[16]* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])))∧(x2[16]* x3[22]))


(17) -> (13), if ((x2[17]* x2[13])∧(x0[17]* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(17) -> (15), if ((x2[17]* x2[15])∧(x0[17]* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(18) -> (0), if ((java.lang.Object(QuicksortRec.List(NULL, x1[18])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))))


(18) -> (1), if ((java.lang.Object(QuicksortRec.List(NULL, x1[18])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))))


(19) -> (0), if ((java.lang.Object(QuicksortRec.List(NULL, x1[19])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))))


(19) -> (1), if ((java.lang.Object(QuicksortRec.List(NULL, x1[19])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))))


(20) -> (0), if ((java.lang.Object(QuicksortRec.List(NULL, x3[20])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))))


(20) -> (1), if ((java.lang.Object(QuicksortRec.List(NULL, x3[20])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))))


(21) -> (0), if ((java.lang.Object(QuicksortRec.List(NULL, x2[21])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))))


(21) -> (1), if ((java.lang.Object(QuicksortRec.List(NULL, x2[21])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))))


(22) -> (0), if ((java.lang.Object(QuicksortRec.List(NULL, x4[22])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))))


(22) -> (1), if ((java.lang.Object(QuicksortRec.List(NULL, x4[22])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))))


(23) -> (13), if ((x1[23]* x2[13])∧(java.lang.Object(QuicksortRec.List(NULL, x0[23])) →* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(23) -> (15), if ((x1[23]* x2[15])∧(java.lang.Object(QuicksortRec.List(NULL, x0[23])) →* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(24) -> (13), if ((x3[24]* x2[13])∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])) →* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(24) -> (15), if ((x3[24]* x2[15])∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])) →* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(25) -> (13), if ((x1[25]* x2[13])∧(java.lang.Object(QuicksortRec.List(NULL, x0[25])) →* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(25) -> (15), if ((x1[25]* x2[15])∧(java.lang.Object(QuicksortRec.List(NULL, x0[25])) →* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(26) -> (13), if ((x3[26]* x2[13])∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])) →* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(26) -> (15), if ((x3[26]* x2[15])∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])) →* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))



The set Q consists of the following terms:
1825_0_quicksort_NONNULL(NULL)
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0)
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x0, java.lang.Object(QuicksortRec.List(NULL, x1)))
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2)))
2310_0_sortedHigh_NONNULL(x0, NULL)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0)
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0)
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)

(6) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0, x1)), x1, x2), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(x0, x1)), x2) the following chains were created:
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (1)    (java.lang.Object(QuicksortRec.List(NULL, x1[7]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])∧(UIncreasing(2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), ≥))



    We solved constraint (1) using rules (I), (II).
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (2)    (java.lang.Object(QuicksortRec.List(NULL, x1[8]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])∧(UIncreasing(2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), ≥))



    We solved constraint (2) using rules (I), (II).
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (3)    (java.lang.Object(QuicksortRec.List(NULL, x3[9]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])∧(UIncreasing(2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), ≥))



    We solved constraint (3) using rules (I), (II).
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (4)    (java.lang.Object(QuicksortRec.List(NULL, x2[10]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])∧(UIncreasing(2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), ≥))



    We solved constraint (4) using rules (I), (II).
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (5)    (java.lang.Object(QuicksortRec.List(NULL, x4[11]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])∧(UIncreasing(2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), ≥))



    We solved constraint (5) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (6)    (java.lang.Object(QuicksortRec.List(NULL, x1[18]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])∧(UIncreasing(2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), ≥))



    We solved constraint (6) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (7)    (java.lang.Object(QuicksortRec.List(NULL, x1[19]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])∧(UIncreasing(2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), ≥))



    We solved constraint (7) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (8)    (java.lang.Object(QuicksortRec.List(NULL, x3[20]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])∧(UIncreasing(2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), ≥))



    We solved constraint (8) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (9)    (java.lang.Object(QuicksortRec.List(NULL, x2[21]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])∧(UIncreasing(2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), ≥))



    We solved constraint (9) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (10)    (java.lang.Object(QuicksortRec.List(NULL, x4[22]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])))≥2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])∧(UIncreasing(2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), ≥))



    We solved constraint (10) using rules (I), (II).




For Pair 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0, x1)), x1, x2) the following chains were created:
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (11)    (java.lang.Object(QuicksortRec.List(NULL, x1[7]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])), ≥))



    We solved constraint (11) using rules (I), (II).
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (12)    (java.lang.Object(QuicksortRec.List(NULL, x1[8]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])), ≥))



    We solved constraint (12) using rules (I), (II).
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (13)    (java.lang.Object(QuicksortRec.List(NULL, x3[9]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])), ≥))



    We solved constraint (13) using rules (I), (II).
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (14)    (java.lang.Object(QuicksortRec.List(NULL, x2[10]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])), ≥))



    We solved constraint (14) using rules (I), (II).
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (15)    (java.lang.Object(QuicksortRec.List(NULL, x4[11]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])), ≥))



    We solved constraint (15) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (16)    (java.lang.Object(QuicksortRec.List(NULL, x1[18]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])), ≥))



    We solved constraint (16) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (17)    (java.lang.Object(QuicksortRec.List(NULL, x1[19]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])), ≥))



    We solved constraint (17) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (18)    (java.lang.Object(QuicksortRec.List(NULL, x3[20]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])), ≥))



    We solved constraint (18) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (19)    (java.lang.Object(QuicksortRec.List(NULL, x2[21]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])), ≥))



    We solved constraint (19) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (20)    (java.lang.Object(QuicksortRec.List(NULL, x4[22]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥NonInfC∧1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])))≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])), ≥))



    We solved constraint (20) using rules (I), (II).




For Pair 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) → COND_2076_0_SORTEDLOW_GT(<(x3, x2), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) the following chains were created:
  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]), COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3]) which results in the following constraint:

    (21)    (<(x3[2], x2[2])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3]))∧x2[2]=x2[3]x3[2]=x3[3]2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])≥NonInfC∧2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])≥COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])∧(UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥))



    We simplified constraint (21) using rules (I), (II), (IV) which results in the following new constraint:

    (22)    (<(x3[2], x2[2])=TRUE2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])≥NonInfC∧2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])≥COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])∧(UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥))



    We simplified constraint (22) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (23)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (23) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (24)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (24) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (25)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (25) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (26)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)







For Pair COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0, x1)), x1, x3) the following chains were created:
  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]), COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3]), 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) which results in the following constraint:

    (27)    (<(x3[2], x2[2])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3]))∧x2[2]=x2[3]x3[2]=x3[3]java.lang.Object(QuicksortRec.List(x0[3], x1[3]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2]1, x1[2]1)), x2[2]1))∧x1[3]=x2[2]1x3[3]=x3[2]1COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3])≥NonInfC∧COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥))



    We simplified constraint (27) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (28)    (<(x3[2], x2[2])=TRUECOND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2]1, x1[2]1)), x1[2])), x2[2])), x2[2], x3[2])≥NonInfC∧COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2]1, x1[2]1)), x1[2])), x2[2])), x2[2], x3[2])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2]1, x1[2]1)), x1[2])), x1[2], x3[2])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥))



    We simplified constraint (28) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (29)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (29) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (30)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (30) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (31)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (31) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (32)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]), COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3]), 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) which results in the following constraint:

    (33)    (<(x3[2], x2[2])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3]))∧x2[2]=x2[3]x3[2]=x3[3]java.lang.Object(QuicksortRec.List(x0[3], x1[3]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4]))∧x1[3]=x2[4]x3[3]=x3[4]COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3])≥NonInfC∧COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥))



    We simplified constraint (33) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (34)    (<(x3[2], x2[2])=TRUECOND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x1[2])), x2[2])), x2[2], x3[2])≥NonInfC∧COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x1[2])), x2[2])), x2[2], x3[2])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x1[2])), x1[2], x3[2])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥))



    We simplified constraint (34) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (35)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (35) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (36)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (36) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (37)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (37) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (38)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)







For Pair 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) → COND_2076_0_SORTEDLOW_GT1(>=(x3, x2), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) the following chains were created:
  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]), COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5]) which results in the following constraint:

    (39)    (>=(x3[4], x2[4])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5]))∧x2[4]=x2[5]x3[4]=x3[5]2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])∧(UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥))



    We simplified constraint (39) using rules (I), (II), (IV) which results in the following new constraint:

    (40)    (>=(x3[4], x2[4])=TRUE2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])∧(UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥))



    We simplified constraint (40) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (41)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (41) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (42)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (42) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (43)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (43) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (44)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)



  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]), COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6]) which results in the following constraint:

    (45)    (>=(x3[4], x2[4])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6]))∧x2[4]=x2[6]x3[4]=x3[6]2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])∧(UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥))



    We simplified constraint (45) using rules (I), (II), (IV) which results in the following new constraint:

    (46)    (>=(x3[4], x2[4])=TRUE2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])∧(UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥))



    We simplified constraint (46) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (47)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (47) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (48)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (48) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (49)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (49) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (50)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)







For Pair COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0, x1)), x1, x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, java.lang.Object(QuicksortRec.List(x0, x1)), x3) the following chains were created:
  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]), COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5]) which results in the following constraint:

    (51)    (>=(x3[4], x2[4])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5]))∧x2[4]=x2[5]x3[4]=x3[5]COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5])≥NonInfC∧COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5])≥2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])∧(UIncreasing(2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])), ≥))



    We simplified constraint (51) using rules (I), (II), (III) which results in the following new constraint:

    (52)    (>=(x3[4], x2[4])=TRUECOND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x1[4], x3[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x3[4])∧(UIncreasing(2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])), ≥))



    We simplified constraint (52) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (53)    (0 ≥ 0 ⇒ (UIncreasing(2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧[2 + (-1)bso_119] + x3[4] + [2]x1[4] ≥ 0)



    We simplified constraint (53) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (54)    (0 ≥ 0 ⇒ (UIncreasing(2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧[2 + (-1)bso_119] + x3[4] + [2]x1[4] ≥ 0)



    We simplified constraint (54) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (55)    (0 ≥ 0 ⇒ (UIncreasing(2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧[2 + (-1)bso_119] + x3[4] + [2]x1[4] ≥ 0)



    We simplified constraint (55) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (56)    (0 ≥ 0 ⇒ (UIncreasing(2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_119] ≥ 0∧[1] ≥ 0)







For Pair COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0, x1)), x1, x3) the following chains were created:
  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]), COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6]), 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) which results in the following constraint:

    (57)    (>=(x3[4], x2[4])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6]))∧x2[4]=x2[6]x3[4]=x3[6]java.lang.Object(QuicksortRec.List(x0[6], x1[6]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2]))∧x1[6]=x2[2]x3[6]=x3[2]COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6])≥NonInfC∧COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥))



    We simplified constraint (57) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (58)    (>=(x3[4], x2[4])=TRUECOND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x1[4])), x2[4])), x2[4], x3[4])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x1[4])), x1[4], x3[4])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥))



    We simplified constraint (58) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (59)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (59) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (60)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (60) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (61)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (61) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (62)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)



  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]), COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6]), 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) which results in the following constraint:

    (63)    (>=(x3[4], x2[4])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6]))∧x2[4]=x2[6]x3[4]=x3[6]java.lang.Object(QuicksortRec.List(x0[6], x1[6]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4]1, x1[4]1)), x2[4]1))∧x1[6]=x2[4]1x3[6]=x3[4]1COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6])≥NonInfC∧COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥))



    We simplified constraint (63) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (64)    (>=(x3[4], x2[4])=TRUECOND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4]1, x1[4]1)), x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4]1, x1[4]1)), x1[4])), x2[4])), x2[4], x3[4])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4]1, x1[4]1)), x1[4])), x1[4], x3[4])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥))



    We simplified constraint (64) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (65)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (65) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (66)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (66) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (67)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (67) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (68)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)







For Pair 2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0), java.lang.Object(QuicksortRec.List(NULL, x1)), x1, NULL, x0) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1))) the following chains were created:
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (69)    (java.lang.Object(QuicksortRec.List(NULL, x1[7]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7])≥NonInfC∧2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7])))), ≥))



    We solved constraint (69) using rules (I), (II).
  • We consider the chain 2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (70)    (java.lang.Object(QuicksortRec.List(NULL, x1[7]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7])≥NonInfC∧2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7])))), ≥))



    We solved constraint (70) using rules (I), (II).




For Pair 2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)), x1, java.lang.Object(QuicksortRec.List(NULL, x0)), x2) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1))) the following chains were created:
  • We consider the chain COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5]), 2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (71)    (2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5])=2155_0_sortedLow_Returnjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8]))∧x2[5]=x1[8]java.lang.Object(QuicksortRec.List(x0[5], x1[5]))=java.lang.Object(QuicksortRec.List(NULL, x0[8]))∧x3[5]=x2[8]java.lang.Object(QuicksortRec.List(NULL, x1[8]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8])≥NonInfC∧2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8])))), ≥))



    We solved constraint (71) using rules (I), (II).
  • We consider the chain COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5]), 2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (72)    (2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5])=2155_0_sortedLow_Returnjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8]))∧x2[5]=x1[8]java.lang.Object(QuicksortRec.List(x0[5], x1[5]))=java.lang.Object(QuicksortRec.List(NULL, x0[8]))∧x3[5]=x2[8]java.lang.Object(QuicksortRec.List(NULL, x1[8]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8])≥NonInfC∧2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8])))), ≥))



    We solved constraint (72) using rules (I), (II).




For Pair 2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)), x3, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x4) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3))) the following chains were created:
  • We consider the chain COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5]), 2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (73)    (2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5])=2212_0_sortedLow_Returnjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9]))∧x2[5]=x3[9]java.lang.Object(QuicksortRec.List(x0[5], x1[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9]))∧x3[5]=x4[9]java.lang.Object(QuicksortRec.List(NULL, x3[9]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9])≥NonInfC∧2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9])))), ≥))



    We solved constraint (73) using rules (I), (II).
  • We consider the chain COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5]), 2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (74)    (2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5])=2212_0_sortedLow_Returnjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9]))∧x2[5]=x3[9]java.lang.Object(QuicksortRec.List(x0[5], x1[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9]))∧x3[5]=x4[9]java.lang.Object(QuicksortRec.List(NULL, x3[9]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9])≥NonInfC∧2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9])))), ≥))



    We solved constraint (74) using rules (I), (II).




For Pair 2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x2)), x2, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2))) the following chains were created:
  • We consider the chain COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5]), 2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (75)    (2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5])=2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10])∧java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10]))∧x2[5]=x2[10]java.lang.Object(QuicksortRec.List(x0[5], x1[5]))=java.lang.Object(QuicksortRec.List(NULL, x0[10]))∧x3[5]=x1[10]java.lang.Object(QuicksortRec.List(NULL, x2[10]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10])≥NonInfC∧2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10])))), ≥))



    We solved constraint (75) using rules (I), (II).
  • We consider the chain COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5]), 2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (76)    (2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5])=2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10])∧java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10]))∧x2[5]=x2[10]java.lang.Object(QuicksortRec.List(x0[5], x1[5]))=java.lang.Object(QuicksortRec.List(NULL, x0[10]))∧x3[5]=x1[10]java.lang.Object(QuicksortRec.List(NULL, x2[10]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10])≥NonInfC∧2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10])))), ≥))



    We solved constraint (76) using rules (I), (II).




For Pair 2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x4)), x4, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4))) the following chains were created:
  • We consider the chain COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5]), 2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (77)    (2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5])=2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11])∧java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11]))∧x2[5]=x4[11]java.lang.Object(QuicksortRec.List(x0[5], x1[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11]))∧x3[5]=x3[11]java.lang.Object(QuicksortRec.List(NULL, x4[11]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11])≥NonInfC∧2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11])))), ≥))



    We solved constraint (77) using rules (I), (II).
  • We consider the chain COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5]), 2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (78)    (2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5])=2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11])∧java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11]))∧x2[5]=x4[11]java.lang.Object(QuicksortRec.List(x0[5], x1[5]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11]))∧x3[5]=x3[11]java.lang.Object(QuicksortRec.List(NULL, x4[11]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11])≥NonInfC∧2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11])))), ≥))



    We solved constraint (78) using rules (I), (II).




For Pair 2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0), java.lang.Object(QuicksortRec.List(NULL, x0)), NULL, x0) → 2310_0_SORTEDHIGH_NONNULL(x0, NULL) the following chains were created:
  • We consider the chain 2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0[12]), java.lang.Object(QuicksortRec.List(NULL, x0[12])), NULL, x0[12]) → 2310_0_SORTEDHIGH_NONNULL(x0[12], NULL), 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) which results in the following constraint:

    (79)    (x0[12]=x2[13]NULL=java.lang.Object(QuicksortRec.List(x0[13], x1[13])) ⇒ 2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0[12]), java.lang.Object(QuicksortRec.List(NULL, x0[12])), NULL, x0[12])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0[12]), java.lang.Object(QuicksortRec.List(NULL, x0[12])), NULL, x0[12])≥2310_0_SORTEDHIGH_NONNULL(x0[12], NULL)∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x0[12], NULL)), ≥))



    We solved constraint (79) using rules (I), (II).
  • We consider the chain 2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0[12]), java.lang.Object(QuicksortRec.List(NULL, x0[12])), NULL, x0[12]) → 2310_0_SORTEDHIGH_NONNULL(x0[12], NULL), 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) which results in the following constraint:

    (80)    (x0[12]=x2[15]NULL=java.lang.Object(QuicksortRec.List(x0[15], x1[15])) ⇒ 2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0[12]), java.lang.Object(QuicksortRec.List(NULL, x0[12])), NULL, x0[12])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0[12]), java.lang.Object(QuicksortRec.List(NULL, x0[12])), NULL, x0[12])≥2310_0_SORTEDHIGH_NONNULL(x0[12], NULL)∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x0[12], NULL)), ≥))



    We solved constraint (80) using rules (I), (II).




For Pair 2310_0_SORTEDHIGH_NONNULL(x2, java.lang.Object(QuicksortRec.List(x0, x1))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2, x1), x2, java.lang.Object(QuicksortRec.List(x0, x1))) the following chains were created:
  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))), COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14]) which results in the following constraint:

    (81)    (>=(x2[13], x1[13])=TRUEx2[13]=x2[14]java.lang.Object(QuicksortRec.List(x0[13], x1[13]))=java.lang.Object(QuicksortRec.List(x0[14], x1[14])) ⇒ 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))≥NonInfC∧2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))≥COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))∧(UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥))



    We simplified constraint (81) using rules (I), (II), (IV) which results in the following new constraint:

    (82)    (>=(x2[13], x1[13])=TRUE2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))≥NonInfC∧2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))≥COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))∧(UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥))



    We simplified constraint (82) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (83)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[13] ≥ 0∧[(-1)bso_123] ≥ 0)



    We simplified constraint (83) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (84)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[13] ≥ 0∧[(-1)bso_123] ≥ 0)



    We simplified constraint (84) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (85)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[13] ≥ 0∧[(-1)bso_123] ≥ 0)



    We simplified constraint (85) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (86)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_122] ≥ 0∧[(-1)bni_122 + (-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_123] ≥ 0)







For Pair COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2, java.lang.Object(QuicksortRec.List(x0, x1))) → 2310_0_SORTEDHIGH_NONNULL(x2, x0) the following chains were created:
  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))), COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14]), 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) which results in the following constraint:

    (87)    (>=(x2[13], x1[13])=TRUEx2[13]=x2[14]java.lang.Object(QuicksortRec.List(x0[13], x1[13]))=java.lang.Object(QuicksortRec.List(x0[14], x1[14]))∧x2[14]=x2[13]1x0[14]=java.lang.Object(QuicksortRec.List(x0[13]1, x1[13]1)) ⇒ COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14])))≥2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥))



    We simplified constraint (87) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (88)    (>=(x2[13], x1[13])=TRUECOND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[13], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[13]1, x1[13]1)), x1[13])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[13], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[13]1, x1[13]1)), x1[13])))≥2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13]1, x1[13]1)))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥))



    We simplified constraint (88) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (89)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(-1)bni_124 + (-1)Bound*bni_124] + [bni_124]x2[13] ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (89) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (90)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(-1)bni_124 + (-1)Bound*bni_124] + [bni_124]x2[13] ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (90) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (91)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(-1)bni_124 + (-1)Bound*bni_124] + [bni_124]x2[13] ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (91) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (92)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_124] ≥ 0∧[(-1)bni_124 + (-1)Bound*bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)



  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))), COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14]), 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) which results in the following constraint:

    (93)    (>=(x2[13], x1[13])=TRUEx2[13]=x2[14]java.lang.Object(QuicksortRec.List(x0[13], x1[13]))=java.lang.Object(QuicksortRec.List(x0[14], x1[14]))∧x2[14]=x2[15]x0[14]=java.lang.Object(QuicksortRec.List(x0[15], x1[15])) ⇒ COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14])))≥2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥))



    We simplified constraint (93) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (94)    (>=(x2[13], x1[13])=TRUECOND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[13], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[15], x1[15])), x1[13])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[13], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[15], x1[15])), x1[13])))≥2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥))



    We simplified constraint (94) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (95)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(-1)bni_124 + (-1)Bound*bni_124] + [bni_124]x2[13] ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (95) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (96)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(-1)bni_124 + (-1)Bound*bni_124] + [bni_124]x2[13] ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (96) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (97)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(-1)bni_124 + (-1)Bound*bni_124] + [bni_124]x2[13] ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (97) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (98)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_124] ≥ 0∧[(-1)bni_124 + (-1)Bound*bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)







For Pair 2310_0_SORTEDHIGH_NONNULL(x2, java.lang.Object(QuicksortRec.List(x0, x1))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2, x1), x2, java.lang.Object(QuicksortRec.List(x0, x1))) the following chains were created:
  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))), COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16]) which results in the following constraint:

    (99)    (<(x2[15], x1[15])=TRUEx2[15]=x2[16]java.lang.Object(QuicksortRec.List(x0[15], x1[15]))=java.lang.Object(QuicksortRec.List(x0[16], x1[16])) ⇒ 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥NonInfC∧2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))∧(UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥))



    We simplified constraint (99) using rules (I), (II), (IV) which results in the following new constraint:

    (100)    (<(x2[15], x1[15])=TRUE2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥NonInfC∧2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))∧(UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥))



    We simplified constraint (100) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (101)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧[(-1)bni_126 + (-1)Bound*bni_126] + [bni_126]x2[15] ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (101) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (102)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧[(-1)bni_126 + (-1)Bound*bni_126] + [bni_126]x2[15] ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (102) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (103)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧[(-1)bni_126 + (-1)Bound*bni_126] + [bni_126]x2[15] ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (103) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (104)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_126] ≥ 0∧[(-1)bni_126 + (-1)Bound*bni_126] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))), COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17]) which results in the following constraint:

    (105)    (<(x2[15], x1[15])=TRUEx2[15]=x2[17]java.lang.Object(QuicksortRec.List(x0[15], x1[15]))=java.lang.Object(QuicksortRec.List(x0[17], x1[17])) ⇒ 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥NonInfC∧2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))∧(UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥))



    We simplified constraint (105) using rules (I), (II), (IV) which results in the following new constraint:

    (106)    (<(x2[15], x1[15])=TRUE2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥NonInfC∧2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))∧(UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥))



    We simplified constraint (106) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (107)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧[(-1)bni_126 + (-1)Bound*bni_126] + [bni_126]x2[15] ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (107) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (108)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧[(-1)bni_126 + (-1)Bound*bni_126] + [bni_126]x2[15] ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (108) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (109)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧[(-1)bni_126 + (-1)Bound*bni_126] + [bni_126]x2[15] ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (109) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (110)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_126] ≥ 0∧[(-1)bni_126 + (-1)Bound*bni_126] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)







For Pair COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2, java.lang.Object(QuicksortRec.List(x0, x1))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2, x0), java.lang.Object(QuicksortRec.List(x0, x1)), x1, x0, x2) the following chains were created:
  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))), COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16]) which results in the following constraint:

    (111)    (<(x2[15], x1[15])=TRUEx2[15]=x2[16]java.lang.Object(QuicksortRec.List(x0[15], x1[15]))=java.lang.Object(QuicksortRec.List(x0[16], x1[16])) ⇒ COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16])))≥2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])∧(UIncreasing(2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])), ≥))



    We simplified constraint (111) using rules (I), (II), (III) which results in the following new constraint:

    (112)    (<(x2[15], x1[15])=TRUECOND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[15], x0[15]), java.lang.Object(QuicksortRec.List(x0[15], x1[15])), x1[15], x0[15], x2[15])∧(UIncreasing(2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])), ≥))



    We simplified constraint (112) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (113)    (0 ≥ 0 ⇒ (UIncreasing(2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])), ≥)∧[(-1)bni_128 + (-1)Bound*bni_128] + [bni_128]x2[15] ≥ 0∧[2 + (-1)bso_129] + x1[15] + x0[15] + [2]x2[15] ≥ 0)



    We simplified constraint (113) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (114)    (0 ≥ 0 ⇒ (UIncreasing(2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])), ≥)∧[(-1)bni_128 + (-1)Bound*bni_128] + [bni_128]x2[15] ≥ 0∧[2 + (-1)bso_129] + x1[15] + x0[15] + [2]x2[15] ≥ 0)



    We simplified constraint (114) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (115)    (0 ≥ 0 ⇒ (UIncreasing(2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])), ≥)∧[(-1)bni_128 + (-1)Bound*bni_128] + [bni_128]x2[15] ≥ 0∧[2 + (-1)bso_129] + x1[15] + x0[15] + [2]x2[15] ≥ 0)



    We simplified constraint (115) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (116)    (0 ≥ 0 ⇒ (UIncreasing(2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_128] ≥ 0∧[(-1)bni_128 + (-1)Bound*bni_128] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[2 + (-1)bso_129] ≥ 0∧[1] ≥ 0)







For Pair COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2, java.lang.Object(QuicksortRec.List(x0, x1))) → 2310_0_SORTEDHIGH_NONNULL(x2, x0) the following chains were created:
  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))), COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17]), 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) which results in the following constraint:

    (117)    (<(x2[15], x1[15])=TRUEx2[15]=x2[17]java.lang.Object(QuicksortRec.List(x0[15], x1[15]))=java.lang.Object(QuicksortRec.List(x0[17], x1[17]))∧x2[17]=x2[13]x0[17]=java.lang.Object(QuicksortRec.List(x0[13], x1[13])) ⇒ COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17])))≥2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥))



    We simplified constraint (117) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (118)    (<(x2[15], x1[15])=TRUECOND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[15], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[13], x1[13])), x1[15])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[15], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[13], x1[13])), x1[15])))≥2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥))



    We simplified constraint (118) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (119)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x2[15] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (119) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (120)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x2[15] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (120) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (121)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x2[15] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (121) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (122)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_130] ≥ 0∧[(-1)bni_130 + (-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)



  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))), COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17]), 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) which results in the following constraint:

    (123)    (<(x2[15], x1[15])=TRUEx2[15]=x2[17]java.lang.Object(QuicksortRec.List(x0[15], x1[15]))=java.lang.Object(QuicksortRec.List(x0[17], x1[17]))∧x2[17]=x2[15]1x0[17]=java.lang.Object(QuicksortRec.List(x0[15]1, x1[15]1)) ⇒ COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17])))≥2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥))



    We simplified constraint (123) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (124)    (<(x2[15], x1[15])=TRUECOND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[15], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[15]1, x1[15]1)), x1[15])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[15], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[15]1, x1[15]1)), x1[15])))≥2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15]1, x1[15]1)))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥))



    We simplified constraint (124) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (125)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x2[15] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (125) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (126)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x2[15] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (126) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (127)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x2[15] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (127) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (128)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_130] ≥ 0∧[(-1)bni_130 + (-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)







For Pair 2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0), java.lang.Object(QuicksortRec.List(NULL, x1)), x1, NULL, x0) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1))) the following chains were created:
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (129)    (java.lang.Object(QuicksortRec.List(NULL, x1[18]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18])≥NonInfC∧2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18])))), ≥))



    We solved constraint (129) using rules (I), (II).
  • We consider the chain 2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (130)    (java.lang.Object(QuicksortRec.List(NULL, x1[18]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18])≥NonInfC∧2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18])))), ≥))



    We solved constraint (130) using rules (I), (II).




For Pair 2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)), x1, java.lang.Object(QuicksortRec.List(NULL, x0)), x2) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1))) the following chains were created:
  • We consider the chain COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16]), 2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (131)    (2310_0_sortedHigh_NONNULL(x2[16], x0[16])=2483_0_sortedHigh_Returnjava.lang.Object(QuicksortRec.List(x0[16], x1[16]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19]))∧x1[16]=x1[19]x0[16]=java.lang.Object(QuicksortRec.List(NULL, x0[19]))∧x2[16]=x2[19]java.lang.Object(QuicksortRec.List(NULL, x1[19]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19])≥NonInfC∧2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19])))), ≥))



    We solved constraint (131) using rules (I), (II).
  • We consider the chain COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16]), 2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (132)    (2310_0_sortedHigh_NONNULL(x2[16], x0[16])=2483_0_sortedHigh_Returnjava.lang.Object(QuicksortRec.List(x0[16], x1[16]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19]))∧x1[16]=x1[19]x0[16]=java.lang.Object(QuicksortRec.List(NULL, x0[19]))∧x2[16]=x2[19]java.lang.Object(QuicksortRec.List(NULL, x1[19]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19])≥NonInfC∧2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19])))), ≥))



    We solved constraint (132) using rules (I), (II).




For Pair 2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)), x3, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x4) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3))) the following chains were created:
  • We consider the chain COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16]), 2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (133)    (2310_0_sortedHigh_NONNULL(x2[16], x0[16])=2536_0_sortedHigh_Returnjava.lang.Object(QuicksortRec.List(x0[16], x1[16]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20]))∧x1[16]=x3[20]x0[16]=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20]))∧x2[16]=x4[20]java.lang.Object(QuicksortRec.List(NULL, x3[20]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20])≥NonInfC∧2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20])))), ≥))



    We solved constraint (133) using rules (I), (II).
  • We consider the chain COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16]), 2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (134)    (2310_0_sortedHigh_NONNULL(x2[16], x0[16])=2536_0_sortedHigh_Returnjava.lang.Object(QuicksortRec.List(x0[16], x1[16]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20]))∧x1[16]=x3[20]x0[16]=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20]))∧x2[16]=x4[20]java.lang.Object(QuicksortRec.List(NULL, x3[20]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20])≥NonInfC∧2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20])))), ≥))



    We solved constraint (134) using rules (I), (II).




For Pair 2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x2)), x2, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2))) the following chains were created:
  • We consider the chain COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16]), 2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (135)    (2310_0_sortedHigh_NONNULL(x2[16], x0[16])=2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21])))∧java.lang.Object(QuicksortRec.List(x0[16], x1[16]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21]))∧x1[16]=x2[21]x0[16]=java.lang.Object(QuicksortRec.List(NULL, x0[21]))∧x2[16]=x1[21]java.lang.Object(QuicksortRec.List(NULL, x2[21]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21])≥NonInfC∧2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21])))), ≥))



    We solved constraint (135) using rules (I), (II).
  • We consider the chain COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16]), 2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (136)    (2310_0_sortedHigh_NONNULL(x2[16], x0[16])=2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21])))∧java.lang.Object(QuicksortRec.List(x0[16], x1[16]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21]))∧x1[16]=x2[21]x0[16]=java.lang.Object(QuicksortRec.List(NULL, x0[21]))∧x2[16]=x1[21]java.lang.Object(QuicksortRec.List(NULL, x2[21]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21])≥NonInfC∧2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21])))), ≥))



    We solved constraint (136) using rules (I), (II).




For Pair 2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x4)), x4, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4))) the following chains were created:
  • We consider the chain COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16]), 2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]) which results in the following constraint:

    (137)    (2310_0_sortedHigh_NONNULL(x2[16], x0[16])=2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])))∧java.lang.Object(QuicksortRec.List(x0[16], x1[16]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22]))∧x1[16]=x4[22]x0[16]=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))∧x2[16]=x3[22]java.lang.Object(QuicksortRec.List(NULL, x4[22]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])) ⇒ 2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22])≥NonInfC∧2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22])))), ≥))



    We solved constraint (137) using rules (I), (II).
  • We consider the chain COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16]), 2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22]))), 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1]) which results in the following constraint:

    (138)    (2310_0_sortedHigh_NONNULL(x2[16], x0[16])=2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])))∧java.lang.Object(QuicksortRec.List(x0[16], x1[16]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22]))∧x1[16]=x4[22]x0[16]=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))∧x2[16]=x3[22]java.lang.Object(QuicksortRec.List(NULL, x4[22]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1])) ⇒ 2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22])≥NonInfC∧2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22])≥1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22])))∧(UIncreasing(1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22])))), ≥))



    We solved constraint (138) using rules (I), (II).




For Pair 2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2310_0_SORTEDHIGH_NONNULL(x1, java.lang.Object(QuicksortRec.List(NULL, x0))) the following chains were created:
  • We consider the chain 2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23]) → 2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23]))), 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) which results in the following constraint:

    (139)    (x1[23]=x2[13]java.lang.Object(QuicksortRec.List(NULL, x0[23]))=java.lang.Object(QuicksortRec.List(x0[13], x1[13])) ⇒ 2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])≥2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥))



    We simplified constraint (139) using rules (I), (II), (IV) which results in the following new constraint:

    (140)    (2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])≥2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥))



    We simplified constraint (140) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (141)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥)∧[2 + (-1)bso_133] ≥ 0)



    We simplified constraint (141) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (142)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥)∧[2 + (-1)bso_133] ≥ 0)



    We simplified constraint (142) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (143)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥)∧[2 + (-1)bso_133] ≥ 0)



    We simplified constraint (143) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (144)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_133] ≥ 0)



  • We consider the chain 2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23]) → 2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23]))), 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) which results in the following constraint:

    (145)    (x1[23]=x2[15]java.lang.Object(QuicksortRec.List(NULL, x0[23]))=java.lang.Object(QuicksortRec.List(x0[15], x1[15])) ⇒ 2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])≥2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥))



    We simplified constraint (145) using rules (I), (II), (IV) which results in the following new constraint:

    (146)    (2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])≥2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥))



    We simplified constraint (146) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (147)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥)∧[2 + (-1)bso_133] ≥ 0)



    We simplified constraint (147) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (148)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥)∧[2 + (-1)bso_133] ≥ 0)



    We simplified constraint (148) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (149)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥)∧[2 + (-1)bso_133] ≥ 0)



    We simplified constraint (149) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (150)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_133] ≥ 0)







For Pair 2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2310_0_SORTEDHIGH_NONNULL(x3, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))) the following chains were created:
  • We consider the chain 2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24]) → 2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24]))), 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) which results in the following constraint:

    (151)    (x3[24]=x2[13]java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24]))=java.lang.Object(QuicksortRec.List(x0[13], x1[13])) ⇒ 2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])≥2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥))



    We simplified constraint (151) using rules (I), (II), (IV) which results in the following new constraint:

    (152)    (2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])≥2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥))



    We simplified constraint (152) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (153)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥)∧[(-1)bso_135] ≥ 0)



    We simplified constraint (153) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (154)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥)∧[(-1)bso_135] ≥ 0)



    We simplified constraint (154) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (155)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥)∧[(-1)bso_135] ≥ 0)



    We simplified constraint (155) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (156)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_135] ≥ 0)



  • We consider the chain 2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24]) → 2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24]))), 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) which results in the following constraint:

    (157)    (x3[24]=x2[15]java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24]))=java.lang.Object(QuicksortRec.List(x0[15], x1[15])) ⇒ 2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])≥2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥))



    We simplified constraint (157) using rules (I), (II), (IV) which results in the following new constraint:

    (158)    (2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])≥2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥))



    We simplified constraint (158) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (159)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥)∧[(-1)bso_135] ≥ 0)



    We simplified constraint (159) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (160)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥)∧[(-1)bso_135] ≥ 0)



    We simplified constraint (160) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (161)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥)∧[(-1)bso_135] ≥ 0)



    We simplified constraint (161) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (162)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_135] ≥ 0)







For Pair 2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2310_0_SORTEDHIGH_NONNULL(x1, java.lang.Object(QuicksortRec.List(NULL, x0))) the following chains were created:
  • We consider the chain 2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]) → 2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25]))), 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) which results in the following constraint:

    (163)    (x1[25]=x2[13]java.lang.Object(QuicksortRec.List(NULL, x0[25]))=java.lang.Object(QuicksortRec.List(x0[13], x1[13])) ⇒ 2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])≥2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥))



    We simplified constraint (163) using rules (I), (II), (IV) which results in the following new constraint:

    (164)    (2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])≥2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥))



    We simplified constraint (164) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (165)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥)∧[(-1)bso_137] ≥ 0)



    We simplified constraint (165) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (166)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥)∧[(-1)bso_137] ≥ 0)



    We simplified constraint (166) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (167)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥)∧[(-1)bso_137] ≥ 0)



    We simplified constraint (167) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (168)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_137] ≥ 0)



  • We consider the chain 2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]) → 2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25]))), 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) which results in the following constraint:

    (169)    (x1[25]=x2[15]java.lang.Object(QuicksortRec.List(NULL, x0[25]))=java.lang.Object(QuicksortRec.List(x0[15], x1[15])) ⇒ 2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])≥2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥))



    We simplified constraint (169) using rules (I), (II), (IV) which results in the following new constraint:

    (170)    (2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])≥2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥))



    We simplified constraint (170) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (171)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥)∧[(-1)bso_137] ≥ 0)



    We simplified constraint (171) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (172)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥)∧[(-1)bso_137] ≥ 0)



    We simplified constraint (172) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (173)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥)∧[(-1)bso_137] ≥ 0)



    We simplified constraint (173) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (174)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_137] ≥ 0)







For Pair 2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2310_0_SORTEDHIGH_NONNULL(x3, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))) the following chains were created:
  • We consider the chain 2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]) → 2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26]))), 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) which results in the following constraint:

    (175)    (x3[26]=x2[13]java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26]))=java.lang.Object(QuicksortRec.List(x0[13], x1[13])) ⇒ 2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])≥2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥))



    We simplified constraint (175) using rules (I), (II), (IV) which results in the following new constraint:

    (176)    (2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])≥2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥))



    We simplified constraint (176) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (177)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥)∧[2 + (-1)bso_139] ≥ 0)



    We simplified constraint (177) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (178)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥)∧[2 + (-1)bso_139] ≥ 0)



    We simplified constraint (178) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (179)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥)∧[2 + (-1)bso_139] ≥ 0)



    We simplified constraint (179) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (180)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_139] ≥ 0)



  • We consider the chain 2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]) → 2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26]))), 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) which results in the following constraint:

    (181)    (x3[26]=x2[15]java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26]))=java.lang.Object(QuicksortRec.List(x0[15], x1[15])) ⇒ 2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])≥2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥))



    We simplified constraint (181) using rules (I), (II), (IV) which results in the following new constraint:

    (182)    (2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])≥NonInfC∧2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])≥2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥))



    We simplified constraint (182) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (183)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥)∧[2 + (-1)bso_139] ≥ 0)



    We simplified constraint (183) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (184)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥)∧[2 + (-1)bso_139] ≥ 0)



    We simplified constraint (184) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (185)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥)∧[2 + (-1)bso_139] ≥ 0)



    We simplified constraint (185) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (186)    ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_139] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0, x1)), x1, x2), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(x0, x1)), x2)

  • 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0, x1)), x1, x2)

  • 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) → COND_2076_0_SORTEDLOW_GT(<(x3, x2), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)

  • COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0, x1)), x1, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

  • 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) → COND_2076_0_SORTEDLOW_GT1(>=(x3, x2), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)

  • COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0, x1)), x1, x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, java.lang.Object(QuicksortRec.List(x0, x1)), x3)
    • (0 ≥ 0 ⇒ (UIncreasing(2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_119] ≥ 0∧[1] ≥ 0)

  • COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x2, x3) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0, x1)), x1, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)

  • 2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0), java.lang.Object(QuicksortRec.List(NULL, x1)), x1, NULL, x0) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1)))

  • 2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)), x1, java.lang.Object(QuicksortRec.List(NULL, x0)), x2) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1)))

  • 2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)), x3, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x4) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3)))

  • 2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x2)), x2, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2)))

  • 2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x4)), x4, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4)))

  • 2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0), java.lang.Object(QuicksortRec.List(NULL, x0)), NULL, x0) → 2310_0_SORTEDHIGH_NONNULL(x0, NULL)

  • 2310_0_SORTEDHIGH_NONNULL(x2, java.lang.Object(QuicksortRec.List(x0, x1))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2, x1), x2, java.lang.Object(QuicksortRec.List(x0, x1)))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_122] ≥ 0∧[(-1)bni_122 + (-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_123] ≥ 0)

  • COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2, java.lang.Object(QuicksortRec.List(x0, x1))) → 2310_0_SORTEDHIGH_NONNULL(x2, x0)
    • (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_124] ≥ 0∧[(-1)bni_124 + (-1)Bound*bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_124] ≥ 0∧[(-1)bni_124 + (-1)Bound*bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)

  • 2310_0_SORTEDHIGH_NONNULL(x2, java.lang.Object(QuicksortRec.List(x0, x1))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2, x1), x2, java.lang.Object(QuicksortRec.List(x0, x1)))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_126] ≥ 0∧[(-1)bni_126 + (-1)Bound*bni_126] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_126] ≥ 0∧[(-1)bni_126 + (-1)Bound*bni_126] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)

  • COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2, java.lang.Object(QuicksortRec.List(x0, x1))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2, x0), java.lang.Object(QuicksortRec.List(x0, x1)), x1, x0, x2)
    • (0 ≥ 0 ⇒ (UIncreasing(2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_128] ≥ 0∧[(-1)bni_128 + (-1)Bound*bni_128] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[2 + (-1)bso_129] ≥ 0∧[1] ≥ 0)

  • COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2, java.lang.Object(QuicksortRec.List(x0, x1))) → 2310_0_SORTEDHIGH_NONNULL(x2, x0)
    • (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_130] ≥ 0∧[(-1)bni_130 + (-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_130] ≥ 0∧[(-1)bni_130 + (-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)

  • 2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0), java.lang.Object(QuicksortRec.List(NULL, x1)), x1, NULL, x0) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1)))

  • 2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)), x1, java.lang.Object(QuicksortRec.List(NULL, x0)), x2) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1)))

  • 2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)), x3, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x4) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3)))

  • 2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x2)), x2, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2)))

  • 2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x4)), x4, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4)))

  • 2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2310_0_SORTEDHIGH_NONNULL(x1, java.lang.Object(QuicksortRec.List(NULL, x0)))
    • ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_133] ≥ 0)
    • ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_133] ≥ 0)

  • 2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2310_0_SORTEDHIGH_NONNULL(x3, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)))
    • ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_135] ≥ 0)
    • ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_135] ≥ 0)

  • 2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2310_0_SORTEDHIGH_NONNULL(x1, java.lang.Object(QuicksortRec.List(NULL, x0)))
    • ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_137] ≥ 0)
    • ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_137] ≥ 0)

  • 2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2310_0_SORTEDHIGH_NONNULL(x3, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)))
    • ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_139] ≥ 0)
    • ((UIncreasing(2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_139] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(1825_0_quicksort_NONNULL(x1)) = 0   
POL(NULL) = 0   
POL(1894_0_quicksort_Return) = 0   
POL(2145_1_sortedLow_InvokeMethod(x1, x2, x3)) = 0   
POL(2045_0_sortedLow_Return(x1)) = 0   
POL(2155_0_sortedLow_Return) = [2]   
POL(java.lang.Object(x1)) = 0   
POL(QuicksortRec.List(x1, x2)) = 0   
POL(2212_0_sortedLow_Return) = 0   
POL(2380_0_sortedLow_Return(x1, x2)) = 0   
POL(2406_0_sortedLow_Return(x1, x2)) = [2]   
POL(2364_1_sortedLow_InvokeMethod(x1, x2, x3)) = 0   
POL(2329_0_quicksort_Return) = 0   
POL(2385_1_sortedLow_InvokeMethod(x1, x2, x3, x4)) = 0   
POL(2310_0_sortedHigh_NONNULL(x1, x2)) = [2] + [3]x1   
POL(2345_0_sortedHigh_Return(x1)) = [2] + [3]x1   
POL(2475_1_sortedHigh_InvokeMethod(x1, x2, x3)) = 0   
POL(2483_0_sortedHigh_Return) = 0   
POL(2536_0_sortedHigh_Return) = 0   
POL(2642_0_sortedHigh_Return(x1)) = 0   
POL(2662_0_sortedHigh_Return(x1)) = 0   
POL(2631_1_sortedHigh_InvokeMethod(x1, x2)) = 0   
POL(2643_1_sortedHigh_InvokeMethod(x1, x2, x3)) = 0   
POL(2139_1_quicksort_InvokeMethod(x1, x2)) = 0   
POL(2296_1_quicksort_InvokeMethod(x1, x2, x3)) = 0   
POL(2588_0_quicksort_Return) = 0   
POL(1825_0_QUICKSORT_NONNULL(x1)) = [-1] + [-1]x1   
POL(2012_1_QUICKSORT_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + [-1]x3 + [-1]x2 + x1   
POL(2076_0_sortedLow_GT(x1, x2, x3)) = [2] + x3 + [2]x2   
POL(2076_0_SORTEDLOW_GT(x1, x2, x3)) = [-1] + [-1]x1   
POL(COND_2076_0_SORTEDLOW_GT(x1, x2, x3, x4)) = [-1] + [-1]x2   
POL(<(x1, x2)) = 0   
POL(COND_2076_0_SORTEDLOW_GT1(x1, x2, x3, x4)) = [-1] + [-1]x2   
POL(>=(x1, x2)) = 0   
POL(2195_1_SORTEDLOW_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + [-1]x2 + [-1]x1   
POL(2310_0_SORTEDHIGH_NONNULL(x1, x2)) = [-1] + [-1]x2 + x1   
POL(COND_2310_0_SORTEDHIGH_NONNULL(x1, x2, x3)) = [-1] + [-1]x3 + x2   
POL(COND_2310_0_SORTEDHIGH_NONNULL1(x1, x2, x3)) = [-1] + [-1]x3 + x2   
POL(2520_1_SORTEDHIGH_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [2]x5 + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x1   

The following pairs are in P>:

1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])
1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])
COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])
2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7])))
2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8])))
2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9])))
2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10])))
2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11])))
2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0[12]), java.lang.Object(QuicksortRec.List(NULL, x0[12])), NULL, x0[12]) → 2310_0_SORTEDHIGH_NONNULL(x0[12], NULL)
COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])
2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18])))
2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19])))
2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20])))
2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21])))
2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22])))
2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23]) → 2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))
2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]) → 2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))

The following pairs are in Pbound:

1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0]))) → 2012_1_QUICKSORT_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x1[0], x2[0]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])), java.lang.Object(QuicksortRec.List(x0[0], x1[0])), x2[0])
1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x2[1]))) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[1], x1[1])), x1[1], x2[1])
2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])
COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])
2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])
COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], x3[5]) → 2195_1_SORTEDLOW_INVOKEMETHOD(2076_0_sortedLow_GT(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x1[5], x3[5]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x2[5])), x2[5], java.lang.Object(QuicksortRec.List(x0[5], x1[5])), x3[5])
COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])
2195_1_SORTEDLOW_INVOKEMETHOD(2045_0_sortedLow_Return(x0[7]), java.lang.Object(QuicksortRec.List(NULL, x1[7])), x1[7], NULL, x0[7]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[7])))
2195_1_SORTEDLOW_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[8])), x1[8])), x1[8], java.lang.Object(QuicksortRec.List(NULL, x0[8])), x2[8]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[8])))
2195_1_SORTEDLOW_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x3[9])), x3[9], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[9], x1[9])), x2[9])), x4[9]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[9])))
2195_1_SORTEDLOW_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[10])), x2[10])), x2[10], java.lang.Object(QuicksortRec.List(NULL, x0[10])), x1[10]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[10])))
2195_1_SORTEDLOW_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x4[11])), x4[11], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[11], x1[11])), x2[11])), x3[11]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[11])))
2012_1_QUICKSORT_INVOKEMETHOD(2045_0_sortedLow_Return(x0[12]), java.lang.Object(QuicksortRec.List(NULL, x0[12])), NULL, x0[12]) → 2310_0_SORTEDHIGH_NONNULL(x0[12], NULL)
2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))
COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])
2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))
COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[16], java.lang.Object(QuicksortRec.List(x0[16], x1[16]))) → 2520_1_SORTEDHIGH_INVOKEMETHOD(2310_0_sortedHigh_NONNULL(x2[16], x0[16]), java.lang.Object(QuicksortRec.List(x0[16], x1[16])), x1[16], x0[16], x2[16])
COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])
2520_1_SORTEDHIGH_INVOKEMETHOD(2345_0_sortedHigh_Return(x0[18]), java.lang.Object(QuicksortRec.List(NULL, x1[18])), x1[18], NULL, x0[18]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[18])))
2520_1_SORTEDHIGH_INVOKEMETHOD(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[19])), x1[19])), x1[19], java.lang.Object(QuicksortRec.List(NULL, x0[19])), x2[19]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x1[19])))
2520_1_SORTEDHIGH_INVOKEMETHOD(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x3[20])), x3[20], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[20], x1[20])), x2[20])), x4[20]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x3[20])))
2520_1_SORTEDHIGH_INVOKEMETHOD(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0[21]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[21])), x2[21])), x2[21], java.lang.Object(QuicksortRec.List(NULL, x0[21])), x1[21]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x2[21])))
2520_1_SORTEDHIGH_INVOKEMETHOD(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22]))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x4[22])), x4[22], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[22], x1[22])), x2[22])), x3[22]) → 1825_0_QUICKSORT_NONNULL(java.lang.Object(QuicksortRec.List(NULL, x4[22])))

The following pairs are in P:

2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])
COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])
2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])
COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])
2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))
COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])
2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))
COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])
2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24]) → 2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))
2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]) → 2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))

At least the following rules have been oriented under context sensitive arithmetic replacement:

2310_0_sortedHigh_NONNULL(x0, NULL)12345_0_sortedHigh_Return(x0)1

(7) Complex Obligation (AND)

(8) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
1825_0_quicksort_NONNULL(NULL) → 1894_0_quicksort_Return
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0) → 2155_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2212_0_sortedLow_Return
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x1, java.lang.Object(QuicksortRec.List(NULL, x0))) → 2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2))) → 2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2310_0_sortedHigh_NONNULL(x0, NULL) → 2345_0_sortedHigh_Return(x0)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0) → 2483_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2536_0_sortedHigh_Return
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0))) → 2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2))) → 2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0) → 2329_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2588_0_quicksort_Return

The integer pair graph contains the following rules and edges:
(2): 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(x3[2] < x2[2], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])
(3): COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])
(4): 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(x3[4] >= x2[4], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])
(6): COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])
(13): 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(x2[13] >= x1[13], x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))
(14): COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])
(15): 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(x2[15] < x1[15], x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))
(17): COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])
(24): 2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24]) → 2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))
(25): 2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]) → 2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))

(3) -> (2), if ((java.lang.Object(QuicksortRec.List(x0[3], x1[3])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])))∧(x1[3]* x2[2])∧(x3[3]* x3[2]))


(6) -> (2), if ((java.lang.Object(QuicksortRec.List(x0[6], x1[6])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])))∧(x1[6]* x2[2])∧(x3[6]* x3[2]))


(2) -> (3), if ((x3[2] < x2[2]* TRUE)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])))∧(x2[2]* x2[3])∧(x3[2]* x3[3]))


(3) -> (4), if ((java.lang.Object(QuicksortRec.List(x0[3], x1[3])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])))∧(x1[3]* x2[4])∧(x3[3]* x3[4]))


(6) -> (4), if ((java.lang.Object(QuicksortRec.List(x0[6], x1[6])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])))∧(x1[6]* x2[4])∧(x3[6]* x3[4]))


(4) -> (6), if ((x3[4] >= x2[4]* TRUE)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])))∧(x2[4]* x2[6])∧(x3[4]* x3[6]))


(14) -> (13), if ((x2[14]* x2[13])∧(x0[14]* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(17) -> (13), if ((x2[17]* x2[13])∧(x0[17]* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(24) -> (13), if ((x3[24]* x2[13])∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])) →* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(25) -> (13), if ((x1[25]* x2[13])∧(java.lang.Object(QuicksortRec.List(NULL, x0[25])) →* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(13) -> (14), if ((x2[13] >= x1[13]* TRUE)∧(x2[13]* x2[14])∧(java.lang.Object(QuicksortRec.List(x0[13], x1[13])) →* java.lang.Object(QuicksortRec.List(x0[14], x1[14]))))


(14) -> (15), if ((x2[14]* x2[15])∧(x0[14]* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(17) -> (15), if ((x2[17]* x2[15])∧(x0[17]* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(24) -> (15), if ((x3[24]* x2[15])∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])) →* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(25) -> (15), if ((x1[25]* x2[15])∧(java.lang.Object(QuicksortRec.List(NULL, x0[25])) →* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(15) -> (17), if ((x2[15] < x1[15]* TRUE)∧(x2[15]* x2[17])∧(java.lang.Object(QuicksortRec.List(x0[15], x1[15])) →* java.lang.Object(QuicksortRec.List(x0[17], x1[17]))))



The set Q consists of the following terms:
1825_0_quicksort_NONNULL(NULL)
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0)
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x0, java.lang.Object(QuicksortRec.List(NULL, x1)))
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2)))
2310_0_sortedHigh_NONNULL(x0, NULL)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0)
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0)
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)

(9) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes.

(10) Complex Obligation (AND)

(11) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
1825_0_quicksort_NONNULL(NULL) → 1894_0_quicksort_Return
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0) → 2155_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2212_0_sortedLow_Return
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x1, java.lang.Object(QuicksortRec.List(NULL, x0))) → 2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2))) → 2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2310_0_sortedHigh_NONNULL(x0, NULL) → 2345_0_sortedHigh_Return(x0)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0) → 2483_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2536_0_sortedHigh_Return
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0))) → 2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2))) → 2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0) → 2329_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2588_0_quicksort_Return

The integer pair graph contains the following rules and edges:
(6): COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])
(4): 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(x3[4] >= x2[4], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])
(3): COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])
(2): 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(x3[2] < x2[2], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])

(3) -> (2), if ((java.lang.Object(QuicksortRec.List(x0[3], x1[3])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])))∧(x1[3]* x2[2])∧(x3[3]* x3[2]))


(6) -> (2), if ((java.lang.Object(QuicksortRec.List(x0[6], x1[6])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])))∧(x1[6]* x2[2])∧(x3[6]* x3[2]))


(2) -> (3), if ((x3[2] < x2[2]* TRUE)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])))∧(x2[2]* x2[3])∧(x3[2]* x3[3]))


(3) -> (4), if ((java.lang.Object(QuicksortRec.List(x0[3], x1[3])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])))∧(x1[3]* x2[4])∧(x3[3]* x3[4]))


(6) -> (4), if ((java.lang.Object(QuicksortRec.List(x0[6], x1[6])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])))∧(x1[6]* x2[4])∧(x3[6]* x3[4]))


(4) -> (6), if ((x3[4] >= x2[4]* TRUE)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])))∧(x2[4]* x2[6])∧(x3[4]* x3[6]))



The set Q consists of the following terms:
1825_0_quicksort_NONNULL(NULL)
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0)
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x0, java.lang.Object(QuicksortRec.List(NULL, x1)))
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2)))
2310_0_sortedHigh_NONNULL(x0, NULL)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0)
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0)
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)

(12) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(13) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(6): COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])
(4): 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(x3[4] >= x2[4], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])
(3): COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])
(2): 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(x3[2] < x2[2], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])

(3) -> (2), if ((java.lang.Object(QuicksortRec.List(x0[3], x1[3])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])))∧(x1[3]* x2[2])∧(x3[3]* x3[2]))


(6) -> (2), if ((java.lang.Object(QuicksortRec.List(x0[6], x1[6])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])))∧(x1[6]* x2[2])∧(x3[6]* x3[2]))


(2) -> (3), if ((x3[2] < x2[2]* TRUE)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])))∧(x2[2]* x2[3])∧(x3[2]* x3[3]))


(3) -> (4), if ((java.lang.Object(QuicksortRec.List(x0[3], x1[3])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])))∧(x1[3]* x2[4])∧(x3[3]* x3[4]))


(6) -> (4), if ((java.lang.Object(QuicksortRec.List(x0[6], x1[6])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])))∧(x1[6]* x2[4])∧(x3[6]* x3[4]))


(4) -> (6), if ((x3[4] >= x2[4]* TRUE)∧(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])) →* java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])))∧(x2[4]* x2[6])∧(x3[4]* x3[6]))



The set Q consists of the following terms:
1825_0_quicksort_NONNULL(NULL)
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0)
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x0, java.lang.Object(QuicksortRec.List(NULL, x1)))
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2)))
2310_0_sortedHigh_NONNULL(x0, NULL)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0)
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0)
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)

(14) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6]) the following chains were created:
  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]), COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6]), 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) which results in the following constraint:

    (1)    (>=(x3[4], x2[4])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6]))∧x2[4]=x2[6]x3[4]=x3[6]java.lang.Object(QuicksortRec.List(x0[6], x1[6]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2]))∧x1[6]=x2[2]x3[6]=x3[2]COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6])≥NonInfC∧COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥))



    We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (2)    (>=(x3[4], x2[4])=TRUECOND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x1[4])), x2[4])), x2[4], x3[4])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x1[4])), x1[4], x3[4])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(83)bni_20 + (-1)Bound*bni_20] + [bni_20]x3[4] + [bni_20]x2[4] + [(8)bni_20]x1[4] + [(32)bni_20]x1[2] + [(64)bni_20]x0[2] ≥ 0∧[64 + (-1)bso_21] + x2[4] + [7]x1[4] + [24]x1[2] + [48]x0[2] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(83)bni_20 + (-1)Bound*bni_20] + [bni_20]x3[4] + [bni_20]x2[4] + [(8)bni_20]x1[4] + [(32)bni_20]x1[2] + [(64)bni_20]x0[2] ≥ 0∧[64 + (-1)bso_21] + x2[4] + [7]x1[4] + [24]x1[2] + [48]x0[2] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(83)bni_20 + (-1)Bound*bni_20] + [bni_20]x3[4] + [bni_20]x2[4] + [(8)bni_20]x1[4] + [(32)bni_20]x1[2] + [(64)bni_20]x0[2] ≥ 0∧[64 + (-1)bso_21] + x2[4] + [7]x1[4] + [24]x1[2] + [48]x0[2] ≥ 0)



    We simplified constraint (5) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (6)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[bni_20] ≥ 0∧[bni_20] ≥ 0∧[(8)bni_20] ≥ 0∧[(32)bni_20] ≥ 0∧[(64)bni_20] ≥ 0∧[(83)bni_20 + (-1)Bound*bni_20] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[64 + (-1)bso_21] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)



  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]), COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6]), 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) which results in the following constraint:

    (7)    (>=(x3[4], x2[4])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6]))∧x2[4]=x2[6]x3[4]=x3[6]java.lang.Object(QuicksortRec.List(x0[6], x1[6]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4]1, x1[4]1)), x2[4]1))∧x1[6]=x2[4]1x3[6]=x3[4]1COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6])≥NonInfC∧COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥))



    We simplified constraint (7) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (8)    (>=(x3[4], x2[4])=TRUECOND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4]1, x1[4]1)), x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4]1, x1[4]1)), x1[4])), x2[4])), x2[4], x3[4])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4]1, x1[4]1)), x1[4])), x1[4], x3[4])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(83)bni_20 + (-1)Bound*bni_20] + [bni_20]x3[4] + [bni_20]x2[4] + [(8)bni_20]x1[4] + [(32)bni_20]x1[4]1 + [(64)bni_20]x0[4]1 ≥ 0∧[64 + (-1)bso_21] + x2[4] + [7]x1[4] + [24]x1[4]1 + [48]x0[4]1 ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(83)bni_20 + (-1)Bound*bni_20] + [bni_20]x3[4] + [bni_20]x2[4] + [(8)bni_20]x1[4] + [(32)bni_20]x1[4]1 + [(64)bni_20]x0[4]1 ≥ 0∧[64 + (-1)bso_21] + x2[4] + [7]x1[4] + [24]x1[4]1 + [48]x0[4]1 ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[(83)bni_20 + (-1)Bound*bni_20] + [bni_20]x3[4] + [bni_20]x2[4] + [(8)bni_20]x1[4] + [(32)bni_20]x1[4]1 + [(64)bni_20]x0[4]1 ≥ 0∧[64 + (-1)bso_21] + x2[4] + [7]x1[4] + [24]x1[4]1 + [48]x0[4]1 ≥ 0)



    We simplified constraint (11) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (12)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[bni_20] ≥ 0∧[bni_20] ≥ 0∧[(8)bni_20] ≥ 0∧[(32)bni_20] ≥ 0∧[(64)bni_20] ≥ 0∧[(83)bni_20 + (-1)Bound*bni_20] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[64 + (-1)bso_21] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)







For Pair 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) the following chains were created:
  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]), COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6]) which results in the following constraint:

    (13)    (>=(x3[4], x2[4])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6]))∧x2[4]=x2[6]x3[4]=x3[6]2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])∧(UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥))



    We simplified constraint (13) using rules (I), (II), (IV) which results in the following new constraint:

    (14)    (>=(x3[4], x2[4])=TRUE2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥NonInfC∧2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])≥COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])∧(UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[(19)bni_22 + (-1)Bound*bni_22] + [bni_22]x3[4] + [bni_22]x2[4] + [(8)bni_22]x1[4] + [(16)bni_22]x0[4] ≥ 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[(19)bni_22 + (-1)Bound*bni_22] + [bni_22]x3[4] + [bni_22]x2[4] + [(8)bni_22]x1[4] + [(16)bni_22]x0[4] ≥ 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[(19)bni_22 + (-1)Bound*bni_22] + [bni_22]x3[4] + [bni_22]x2[4] + [(8)bni_22]x1[4] + [(16)bni_22]x0[4] ≥ 0∧[(-1)bso_23] ≥ 0)



    We simplified constraint (17) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[bni_22] ≥ 0∧[bni_22] ≥ 0∧[(8)bni_22] ≥ 0∧[(16)bni_22] ≥ 0∧[(19)bni_22 + (-1)Bound*bni_22] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_23] ≥ 0)







For Pair COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3]) the following chains were created:
  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]), COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3]), 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) which results in the following constraint:

    (19)    (<(x3[2], x2[2])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3]))∧x2[2]=x2[3]x3[2]=x3[3]java.lang.Object(QuicksortRec.List(x0[3], x1[3]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2]1, x1[2]1)), x2[2]1))∧x1[3]=x2[2]1x3[3]=x3[2]1COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3])≥NonInfC∧COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥))



    We simplified constraint (19) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (20)    (<(x3[2], x2[2])=TRUECOND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2]1, x1[2]1)), x1[2])), x2[2])), x2[2], x3[2])≥NonInfC∧COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2]1, x1[2]1)), x1[2])), x2[2])), x2[2], x3[2])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2]1, x1[2]1)), x1[2])), x1[2], x3[2])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥))



    We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (21)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(83)bni_24 + (-1)Bound*bni_24] + [bni_24]x3[2] + [bni_24]x2[2] + [(8)bni_24]x1[2] + [(32)bni_24]x1[2]1 + [(64)bni_24]x0[2]1 ≥ 0∧[64 + (-1)bso_25] + x2[2] + [7]x1[2] + [24]x1[2]1 + [48]x0[2]1 ≥ 0)



    We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (22)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(83)bni_24 + (-1)Bound*bni_24] + [bni_24]x3[2] + [bni_24]x2[2] + [(8)bni_24]x1[2] + [(32)bni_24]x1[2]1 + [(64)bni_24]x0[2]1 ≥ 0∧[64 + (-1)bso_25] + x2[2] + [7]x1[2] + [24]x1[2]1 + [48]x0[2]1 ≥ 0)



    We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (23)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(83)bni_24 + (-1)Bound*bni_24] + [bni_24]x3[2] + [bni_24]x2[2] + [(8)bni_24]x1[2] + [(32)bni_24]x1[2]1 + [(64)bni_24]x0[2]1 ≥ 0∧[64 + (-1)bso_25] + x2[2] + [7]x1[2] + [24]x1[2]1 + [48]x0[2]1 ≥ 0)



    We simplified constraint (23) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (24)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[bni_24] ≥ 0∧[bni_24] ≥ 0∧[(8)bni_24] ≥ 0∧[(32)bni_24] ≥ 0∧[(64)bni_24] ≥ 0∧[(83)bni_24 + (-1)Bound*bni_24] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[64 + (-1)bso_25] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)



  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]), COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3]), 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) which results in the following constraint:

    (25)    (<(x3[2], x2[2])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3]))∧x2[2]=x2[3]x3[2]=x3[3]java.lang.Object(QuicksortRec.List(x0[3], x1[3]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4]))∧x1[3]=x2[4]x3[3]=x3[4]COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3])≥NonInfC∧COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥))



    We simplified constraint (25) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (26)    (<(x3[2], x2[2])=TRUECOND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x1[2])), x2[2])), x2[2], x3[2])≥NonInfC∧COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x1[2])), x2[2])), x2[2], x3[2])≥2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x1[2])), x1[2], x3[2])∧(UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥))



    We simplified constraint (26) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (27)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(83)bni_24 + (-1)Bound*bni_24] + [bni_24]x3[2] + [bni_24]x2[2] + [(8)bni_24]x1[2] + [(32)bni_24]x1[4] + [(64)bni_24]x0[4] ≥ 0∧[64 + (-1)bso_25] + x2[2] + [7]x1[2] + [24]x1[4] + [48]x0[4] ≥ 0)



    We simplified constraint (27) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (28)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(83)bni_24 + (-1)Bound*bni_24] + [bni_24]x3[2] + [bni_24]x2[2] + [(8)bni_24]x1[2] + [(32)bni_24]x1[4] + [(64)bni_24]x0[4] ≥ 0∧[64 + (-1)bso_25] + x2[2] + [7]x1[2] + [24]x1[4] + [48]x0[4] ≥ 0)



    We simplified constraint (28) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (29)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[(83)bni_24 + (-1)Bound*bni_24] + [bni_24]x3[2] + [bni_24]x2[2] + [(8)bni_24]x1[2] + [(32)bni_24]x1[4] + [(64)bni_24]x0[4] ≥ 0∧[64 + (-1)bso_25] + x2[2] + [7]x1[2] + [24]x1[4] + [48]x0[4] ≥ 0)



    We simplified constraint (29) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (30)    (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[bni_24] ≥ 0∧[bni_24] ≥ 0∧[(8)bni_24] ≥ 0∧[(32)bni_24] ≥ 0∧[(64)bni_24] ≥ 0∧[(83)bni_24 + (-1)Bound*bni_24] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[64 + (-1)bso_25] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)







For Pair 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) the following chains were created:
  • We consider the chain 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]), COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3]) which results in the following constraint:

    (31)    (<(x3[2], x2[2])=TRUEjava.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2]))=java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3]))∧x2[2]=x2[3]x3[2]=x3[3]2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])≥NonInfC∧2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])≥COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])∧(UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥))



    We simplified constraint (31) using rules (I), (II), (IV) which results in the following new constraint:

    (32)    (<(x3[2], x2[2])=TRUE2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])≥NonInfC∧2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])≥COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])∧(UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥))



    We simplified constraint (32) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (33)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥)∧[(19)bni_26 + (-1)Bound*bni_26] + [bni_26]x3[2] + [bni_26]x2[2] + [(8)bni_26]x1[2] + [(16)bni_26]x0[2] ≥ 0∧[(-1)bso_27] ≥ 0)



    We simplified constraint (33) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (34)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥)∧[(19)bni_26 + (-1)Bound*bni_26] + [bni_26]x3[2] + [bni_26]x2[2] + [(8)bni_26]x1[2] + [(16)bni_26]x0[2] ≥ 0∧[(-1)bso_27] ≥ 0)



    We simplified constraint (34) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (35)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥)∧[(19)bni_26 + (-1)Bound*bni_26] + [bni_26]x3[2] + [bni_26]x2[2] + [(8)bni_26]x1[2] + [(16)bni_26]x0[2] ≥ 0∧[(-1)bso_27] ≥ 0)



    We simplified constraint (35) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (36)    (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥)∧[bni_26] ≥ 0∧[bni_26] ≥ 0∧[(8)bni_26] ≥ 0∧[(16)bni_26] ≥ 0∧[(19)bni_26 + (-1)Bound*bni_26] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_27] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])
    • (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[bni_20] ≥ 0∧[bni_20] ≥ 0∧[(8)bni_20] ≥ 0∧[(32)bni_20] ≥ 0∧[(64)bni_20] ≥ 0∧[(83)bni_20 + (-1)Bound*bni_20] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[64 + (-1)bso_21] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])), ≥)∧[bni_20] ≥ 0∧[bni_20] ≥ 0∧[(8)bni_20] ≥ 0∧[(32)bni_20] ≥ 0∧[(64)bni_20] ≥ 0∧[(83)bni_20 + (-1)Bound*bni_20] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[64 + (-1)bso_21] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

  • 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])), ≥)∧[bni_22] ≥ 0∧[bni_22] ≥ 0∧[(8)bni_22] ≥ 0∧[(16)bni_22] ≥ 0∧[(19)bni_22 + (-1)Bound*bni_22] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_23] ≥ 0)

  • COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])
    • (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[bni_24] ≥ 0∧[bni_24] ≥ 0∧[(8)bni_24] ≥ 0∧[(32)bni_24] ≥ 0∧[(64)bni_24] ≥ 0∧[(83)bni_24 + (-1)Bound*bni_24] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[64 + (-1)bso_25] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])), ≥)∧[bni_24] ≥ 0∧[bni_24] ≥ 0∧[(8)bni_24] ≥ 0∧[(32)bni_24] ≥ 0∧[(64)bni_24] ≥ 0∧[(83)bni_24 + (-1)Bound*bni_24] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[64 + (-1)bso_25] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

  • 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])), ≥)∧[bni_26] ≥ 0∧[bni_26] ≥ 0∧[(8)bni_26] ≥ 0∧[(16)bni_26] ≥ 0∧[(19)bni_26 + (-1)Bound*bni_26] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_27] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(COND_2076_0_SORTEDLOW_GT1(x1, x2, x3, x4)) = [-1] + x4 + [-1]x3 + x2   
POL(java.lang.Object(x1)) = [2]x1   
POL(QuicksortRec.List(x1, x2)) = [2] + x2 + [2]x1   
POL(2076_0_SORTEDLOW_GT(x1, x2, x3)) = [-1] + x3 + [-1]x2 + x1   
POL(>=(x1, x2)) = 0   
POL(COND_2076_0_SORTEDLOW_GT(x1, x2, x3, x4)) = [-1] + x4 + [-1]x3 + x2   
POL(<(x1, x2)) = 0   

The following pairs are in P>:

COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])
COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])

The following pairs are in Pbound:

COND_2076_0_SORTEDLOW_GT1(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x2[6])), x2[6], x3[6]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[6], x1[6])), x1[6], x3[6])
2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])
COND_2076_0_SORTEDLOW_GT(TRUE, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x2[3])), x2[3], x3[3]) → 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(x0[3], x1[3])), x1[3], x3[3])
2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])

The following pairs are in P:

2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(>=(x3[4], x2[4]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])
2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(<(x3[2], x2[2]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])

There are no usable rules.

(15) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(4): 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4]) → COND_2076_0_SORTEDLOW_GT1(x3[4] >= x2[4], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[4], x1[4])), x2[4])), x2[4], x3[4])
(2): 2076_0_SORTEDLOW_GT(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2]) → COND_2076_0_SORTEDLOW_GT(x3[2] < x2[2], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[2], x1[2])), x2[2])), x2[2], x3[2])


The set Q consists of the following terms:
1825_0_quicksort_NONNULL(NULL)
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0)
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x0, java.lang.Object(QuicksortRec.List(NULL, x1)))
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2)))
2310_0_sortedHigh_NONNULL(x0, NULL)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0)
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0)
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)

(16) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(17) TRUE

(18) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
1825_0_quicksort_NONNULL(NULL) → 1894_0_quicksort_Return
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0) → 2155_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2212_0_sortedLow_Return
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x1, java.lang.Object(QuicksortRec.List(NULL, x0))) → 2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2))) → 2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2310_0_sortedHigh_NONNULL(x0, NULL) → 2345_0_sortedHigh_Return(x0)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0) → 2483_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2536_0_sortedHigh_Return
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0))) → 2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2))) → 2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0) → 2329_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2588_0_quicksort_Return

The integer pair graph contains the following rules and edges:
(17): COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])
(15): 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(x2[15] < x1[15], x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))
(14): COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])
(13): 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(x2[13] >= x1[13], x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))

(14) -> (13), if ((x2[14]* x2[13])∧(x0[14]* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(17) -> (13), if ((x2[17]* x2[13])∧(x0[17]* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(13) -> (14), if ((x2[13] >= x1[13]* TRUE)∧(x2[13]* x2[14])∧(java.lang.Object(QuicksortRec.List(x0[13], x1[13])) →* java.lang.Object(QuicksortRec.List(x0[14], x1[14]))))


(14) -> (15), if ((x2[14]* x2[15])∧(x0[14]* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(17) -> (15), if ((x2[17]* x2[15])∧(x0[17]* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(15) -> (17), if ((x2[15] < x1[15]* TRUE)∧(x2[15]* x2[17])∧(java.lang.Object(QuicksortRec.List(x0[15], x1[15])) →* java.lang.Object(QuicksortRec.List(x0[17], x1[17]))))



The set Q consists of the following terms:
1825_0_quicksort_NONNULL(NULL)
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0)
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x0, java.lang.Object(QuicksortRec.List(NULL, x1)))
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2)))
2310_0_sortedHigh_NONNULL(x0, NULL)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0)
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0)
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)

(19) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(20) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(17): COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])
(15): 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(x2[15] < x1[15], x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))
(14): COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])
(13): 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(x2[13] >= x1[13], x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))

(14) -> (13), if ((x2[14]* x2[13])∧(x0[14]* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(17) -> (13), if ((x2[17]* x2[13])∧(x0[17]* java.lang.Object(QuicksortRec.List(x0[13], x1[13]))))


(13) -> (14), if ((x2[13] >= x1[13]* TRUE)∧(x2[13]* x2[14])∧(java.lang.Object(QuicksortRec.List(x0[13], x1[13])) →* java.lang.Object(QuicksortRec.List(x0[14], x1[14]))))


(14) -> (15), if ((x2[14]* x2[15])∧(x0[14]* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(17) -> (15), if ((x2[17]* x2[15])∧(x0[17]* java.lang.Object(QuicksortRec.List(x0[15], x1[15]))))


(15) -> (17), if ((x2[15] < x1[15]* TRUE)∧(x2[15]* x2[17])∧(java.lang.Object(QuicksortRec.List(x0[15], x1[15])) →* java.lang.Object(QuicksortRec.List(x0[17], x1[17]))))



The set Q consists of the following terms:
1825_0_quicksort_NONNULL(NULL)
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0)
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x0, java.lang.Object(QuicksortRec.List(NULL, x1)))
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2)))
2310_0_sortedHigh_NONNULL(x0, NULL)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0)
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0)
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)

(21) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17]) the following chains were created:
  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))), COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17]), 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) which results in the following constraint:

    (1)    (<(x2[15], x1[15])=TRUEx2[15]=x2[17]java.lang.Object(QuicksortRec.List(x0[15], x1[15]))=java.lang.Object(QuicksortRec.List(x0[17], x1[17]))∧x2[17]=x2[13]x0[17]=java.lang.Object(QuicksortRec.List(x0[13], x1[13])) ⇒ COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17])))≥2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥))



    We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (2)    (<(x2[15], x1[15])=TRUECOND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[15], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[13], x1[13])), x1[15])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[15], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[13], x1[13])), x1[15])))≥2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(5)bni_17 + (-1)Bound*bni_17] + [(4)bni_17]x0[13] + [bni_17]x2[15] ≥ 0∧[4 + (-1)bso_18] + [2]x0[13] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(5)bni_17 + (-1)Bound*bni_17] + [(4)bni_17]x0[13] + [bni_17]x2[15] ≥ 0∧[4 + (-1)bso_18] + [2]x0[13] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(5)bni_17 + (-1)Bound*bni_17] + [(4)bni_17]x0[13] + [bni_17]x2[15] ≥ 0∧[4 + (-1)bso_18] + [2]x0[13] ≥ 0)



    We simplified constraint (5) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (6)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_17] ≥ 0∧[bni_17] ≥ 0∧[(5)bni_17 + (-1)Bound*bni_17] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_18] ≥ 0∧[1] ≥ 0)



  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))), COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17]), 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) which results in the following constraint:

    (7)    (<(x2[15], x1[15])=TRUEx2[15]=x2[17]java.lang.Object(QuicksortRec.List(x0[15], x1[15]))=java.lang.Object(QuicksortRec.List(x0[17], x1[17]))∧x2[17]=x2[15]1x0[17]=java.lang.Object(QuicksortRec.List(x0[15]1, x1[15]1)) ⇒ COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17])))≥2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥))



    We simplified constraint (7) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (8)    (<(x2[15], x1[15])=TRUECOND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[15], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[15]1, x1[15]1)), x1[15])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[15], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[15]1, x1[15]1)), x1[15])))≥2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15]1, x1[15]1)))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(5)bni_17 + (-1)Bound*bni_17] + [(4)bni_17]x0[15]1 + [bni_17]x2[15] ≥ 0∧[4 + (-1)bso_18] + [2]x0[15]1 ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(5)bni_17 + (-1)Bound*bni_17] + [(4)bni_17]x0[15]1 + [bni_17]x2[15] ≥ 0∧[4 + (-1)bso_18] + [2]x0[15]1 ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧[(5)bni_17 + (-1)Bound*bni_17] + [(4)bni_17]x0[15]1 + [bni_17]x2[15] ≥ 0∧[4 + (-1)bso_18] + [2]x0[15]1 ≥ 0)



    We simplified constraint (11) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (12)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_17] ≥ 0∧[bni_17] ≥ 0∧[(5)bni_17 + (-1)Bound*bni_17] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_18] ≥ 0∧[1] ≥ 0)







For Pair 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) the following chains were created:
  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))), COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17]) which results in the following constraint:

    (13)    (<(x2[15], x1[15])=TRUEx2[15]=x2[17]java.lang.Object(QuicksortRec.List(x0[15], x1[15]))=java.lang.Object(QuicksortRec.List(x0[17], x1[17])) ⇒ 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥NonInfC∧2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))∧(UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥))



    We simplified constraint (13) using rules (I), (II), (IV) which results in the following new constraint:

    (14)    (<(x2[15], x1[15])=TRUE2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥NonInfC∧2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))≥COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))∧(UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧[bni_19 + (-1)Bound*bni_19] + [(2)bni_19]x0[15] + [bni_19]x2[15] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧[bni_19 + (-1)Bound*bni_19] + [(2)bni_19]x0[15] + [bni_19]x2[15] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧[bni_19 + (-1)Bound*bni_19] + [(2)bni_19]x0[15] + [bni_19]x2[15] ≥ 0∧[(-1)bso_20] ≥ 0)



    We simplified constraint (17) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧0 ≥ 0∧[(2)bni_19] ≥ 0∧[bni_19] ≥ 0∧[bni_19 + (-1)Bound*bni_19] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_20] ≥ 0)







For Pair COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14]) the following chains were created:
  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))), COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14]), 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) which results in the following constraint:

    (19)    (>=(x2[13], x1[13])=TRUEx2[13]=x2[14]java.lang.Object(QuicksortRec.List(x0[13], x1[13]))=java.lang.Object(QuicksortRec.List(x0[14], x1[14]))∧x2[14]=x2[13]1x0[14]=java.lang.Object(QuicksortRec.List(x0[13]1, x1[13]1)) ⇒ COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14])))≥2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥))



    We simplified constraint (19) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (20)    (>=(x2[13], x1[13])=TRUECOND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[13], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[13]1, x1[13]1)), x1[13])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[13], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[13]1, x1[13]1)), x1[13])))≥2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13]1, x1[13]1)))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥))



    We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (21)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(5)bni_21 + (-1)Bound*bni_21] + [(4)bni_21]x0[13]1 + [bni_21]x2[13] ≥ 0∧[4 + (-1)bso_22] + [2]x0[13]1 ≥ 0)



    We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (22)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(5)bni_21 + (-1)Bound*bni_21] + [(4)bni_21]x0[13]1 + [bni_21]x2[13] ≥ 0∧[4 + (-1)bso_22] + [2]x0[13]1 ≥ 0)



    We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (23)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(5)bni_21 + (-1)Bound*bni_21] + [(4)bni_21]x0[13]1 + [bni_21]x2[13] ≥ 0∧[4 + (-1)bso_22] + [2]x0[13]1 ≥ 0)



    We simplified constraint (23) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (24)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_21] ≥ 0∧[bni_21] ≥ 0∧[(5)bni_21 + (-1)Bound*bni_21] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_22] ≥ 0∧[1] ≥ 0)



  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))), COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14]), 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) which results in the following constraint:

    (25)    (>=(x2[13], x1[13])=TRUEx2[13]=x2[14]java.lang.Object(QuicksortRec.List(x0[13], x1[13]))=java.lang.Object(QuicksortRec.List(x0[14], x1[14]))∧x2[14]=x2[15]x0[14]=java.lang.Object(QuicksortRec.List(x0[15], x1[15])) ⇒ COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14])))≥2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥))



    We simplified constraint (25) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (26)    (>=(x2[13], x1[13])=TRUECOND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[13], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[15], x1[15])), x1[13])))≥NonInfC∧COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[13], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[15], x1[15])), x1[13])))≥2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))∧(UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥))



    We simplified constraint (26) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (27)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(5)bni_21 + (-1)Bound*bni_21] + [(4)bni_21]x0[15] + [bni_21]x2[13] ≥ 0∧[4 + (-1)bso_22] + [2]x0[15] ≥ 0)



    We simplified constraint (27) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (28)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(5)bni_21 + (-1)Bound*bni_21] + [(4)bni_21]x0[15] + [bni_21]x2[13] ≥ 0∧[4 + (-1)bso_22] + [2]x0[15] ≥ 0)



    We simplified constraint (28) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (29)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧[(5)bni_21 + (-1)Bound*bni_21] + [(4)bni_21]x0[15] + [bni_21]x2[13] ≥ 0∧[4 + (-1)bso_22] + [2]x0[15] ≥ 0)



    We simplified constraint (29) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (30)    (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_21] ≥ 0∧[bni_21] ≥ 0∧[(5)bni_21 + (-1)Bound*bni_21] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_22] ≥ 0∧[1] ≥ 0)







For Pair 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) the following chains were created:
  • We consider the chain 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))), COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14]) which results in the following constraint:

    (31)    (>=(x2[13], x1[13])=TRUEx2[13]=x2[14]java.lang.Object(QuicksortRec.List(x0[13], x1[13]))=java.lang.Object(QuicksortRec.List(x0[14], x1[14])) ⇒ 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))≥NonInfC∧2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))≥COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))∧(UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥))



    We simplified constraint (31) using rules (I), (II), (IV) which results in the following new constraint:

    (32)    (>=(x2[13], x1[13])=TRUE2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))≥NonInfC∧2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))≥COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))∧(UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥))



    We simplified constraint (32) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (33)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥)∧[bni_23 + (-1)Bound*bni_23] + [(2)bni_23]x0[13] + [bni_23]x2[13] ≥ 0∧[(-1)bso_24] ≥ 0)



    We simplified constraint (33) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (34)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥)∧[bni_23 + (-1)Bound*bni_23] + [(2)bni_23]x0[13] + [bni_23]x2[13] ≥ 0∧[(-1)bso_24] ≥ 0)



    We simplified constraint (34) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (35)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥)∧[bni_23 + (-1)Bound*bni_23] + [(2)bni_23]x0[13] + [bni_23]x2[13] ≥ 0∧[(-1)bso_24] ≥ 0)



    We simplified constraint (35) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (36)    (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥)∧0 ≥ 0∧[(2)bni_23] ≥ 0∧[bni_23] ≥ 0∧[bni_23 + (-1)Bound*bni_23] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_24] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])
    • (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_17] ≥ 0∧[bni_17] ≥ 0∧[(5)bni_17 + (-1)Bound*bni_17] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_18] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_17] ≥ 0∧[bni_17] ≥ 0∧[(5)bni_17 + (-1)Bound*bni_17] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_18] ≥ 0∧[1] ≥ 0)

  • 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))), ≥)∧0 ≥ 0∧[(2)bni_19] ≥ 0∧[bni_19] ≥ 0∧[bni_19 + (-1)Bound*bni_19] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_20] ≥ 0)

  • COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])
    • (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_21] ≥ 0∧[bni_21] ≥ 0∧[(5)bni_21 + (-1)Bound*bni_21] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_22] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_21] ≥ 0∧[bni_21] ≥ 0∧[(5)bni_21 + (-1)Bound*bni_21] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_22] ≥ 0∧[1] ≥ 0)

  • 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))), ≥)∧0 ≥ 0∧[(2)bni_23] ≥ 0∧[bni_23] ≥ 0∧[bni_23 + (-1)Bound*bni_23] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_24] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(COND_2310_0_SORTEDHIGH_NONNULL1(x1, x2, x3)) = [-1] + x3 + x2   
POL(java.lang.Object(x1)) = [2] + [2]x1   
POL(QuicksortRec.List(x1, x2)) = x1   
POL(2310_0_SORTEDHIGH_NONNULL(x1, x2)) = [-1] + x2 + x1   
POL(<(x1, x2)) = 0   
POL(COND_2310_0_SORTEDHIGH_NONNULL(x1, x2, x3)) = [-1] + x3 + x2   
POL(>=(x1, x2)) = 0   

The following pairs are in P>:

COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])
COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])

The following pairs are in Pbound:

COND_2310_0_SORTEDHIGH_NONNULL1(TRUE, x2[17], java.lang.Object(QuicksortRec.List(x0[17], x1[17]))) → 2310_0_SORTEDHIGH_NONNULL(x2[17], x0[17])
2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))
COND_2310_0_SORTEDHIGH_NONNULL(TRUE, x2[14], java.lang.Object(QuicksortRec.List(x0[14], x1[14]))) → 2310_0_SORTEDHIGH_NONNULL(x2[14], x0[14])
2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))

The following pairs are in P:

2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(<(x2[15], x1[15]), x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))
2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(>=(x2[13], x1[13]), x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))

There are no usable rules.

(22) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(15): 2310_0_SORTEDHIGH_NONNULL(x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15]))) → COND_2310_0_SORTEDHIGH_NONNULL1(x2[15] < x1[15], x2[15], java.lang.Object(QuicksortRec.List(x0[15], x1[15])))
(13): 2310_0_SORTEDHIGH_NONNULL(x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13]))) → COND_2310_0_SORTEDHIGH_NONNULL(x2[13] >= x1[13], x2[13], java.lang.Object(QuicksortRec.List(x0[13], x1[13])))


The set Q consists of the following terms:
1825_0_quicksort_NONNULL(NULL)
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0)
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x0, java.lang.Object(QuicksortRec.List(NULL, x1)))
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2)))
2310_0_sortedHigh_NONNULL(x0, NULL)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0)
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0)
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)

(23) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(24) TRUE

(25) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


The ITRS R consists of the following rules:
1825_0_quicksort_NONNULL(NULL) → 1894_0_quicksort_Return
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0) → 2155_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2212_0_sortedLow_Return
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2212_0_sortedLow_Return
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x1, java.lang.Object(QuicksortRec.List(NULL, x0))) → 2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2))) → 2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2310_0_sortedHigh_NONNULL(x0, NULL) → 2345_0_sortedHigh_Return(x0)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0) → 2483_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2536_0_sortedHigh_Return
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2536_0_sortedHigh_Return
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0))) → 2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2))) → 2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0) → 2329_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1) → 2588_0_quicksort_Return
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3) → 2588_0_quicksort_Return

The integer pair graph contains the following rules and edges:
(23): 2012_1_QUICKSORT_INVOKEMETHOD(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23])), java.lang.Object(QuicksortRec.List(NULL, x0[23])), x1[23]) → 2310_0_SORTEDHIGH_NONNULL(x1[23], java.lang.Object(QuicksortRec.List(NULL, x0[23])))
(24): 2012_1_QUICKSORT_INVOKEMETHOD(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])), x3[24]) → 2310_0_SORTEDHIGH_NONNULL(x3[24], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[24], x1[24])), x2[24])))
(25): 2012_1_QUICKSORT_INVOKEMETHOD(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25])), java.lang.Object(QuicksortRec.List(NULL, x0[25])), x1[25]) → 2310_0_SORTEDHIGH_NONNULL(x1[25], java.lang.Object(QuicksortRec.List(NULL, x0[25])))
(26): 2012_1_QUICKSORT_INVOKEMETHOD(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26])), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])), x3[26]) → 2310_0_SORTEDHIGH_NONNULL(x3[26], java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0[26], x1[26])), x2[26])))


The set Q consists of the following terms:
1825_0_quicksort_NONNULL(NULL)
2145_1_sortedLow_InvokeMethod(2045_0_sortedLow_Return(x0), NULL, x0)
2145_1_sortedLow_InvokeMethod(2155_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2212_0_sortedLow_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2145_1_sortedLow_InvokeMethod(2380_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(NULL, x0)), x1), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2145_1_sortedLow_InvokeMethod(2406_0_sortedLow_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2364_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, x0, java.lang.Object(QuicksortRec.List(NULL, x1)))
2385_1_sortedLow_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3, java.lang.Object(QuicksortRec.List(NULL, x2)))
2310_0_sortedHigh_NONNULL(x0, NULL)
2475_1_sortedHigh_InvokeMethod(2345_0_sortedHigh_Return(x0), NULL, x0)
2475_1_sortedHigh_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2475_1_sortedHigh_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2475_1_sortedHigh_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2631_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(NULL, x0)))
2643_1_sortedHigh_InvokeMethod(2329_0_quicksort_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), java.lang.Object(QuicksortRec.List(NULL, x2)))
2139_1_quicksort_InvokeMethod(2345_0_sortedHigh_Return(x0), x0)
2296_1_quicksort_InvokeMethod(2483_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2536_0_sortedHigh_Return, java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)
2296_1_quicksort_InvokeMethod(2642_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(NULL, x0))), java.lang.Object(QuicksortRec.List(NULL, x0)), x1)
2296_1_quicksort_InvokeMethod(2662_0_sortedHigh_Return(java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2))), java.lang.Object(QuicksortRec.List(java.lang.Object(QuicksortRec.List(x0, x1)), x2)), x3)

(26) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 4 less nodes.

(27) TRUE

(28) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
480_0_createList_GT(0) → 492_0_createList_Return
836_1_createList_InvokeMethod(492_0_createList_Return, 0) → 1628_0_createList_Return
836_1_createList_InvokeMethod(696_0_createList_Return, x1) → 2113_0_createList_Return
836_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0) → 1538_0_createList_InvokeMethod(x0)
836_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1628_0_createList_Return, x1) → 2113_0_createList_Return
836_1_createList_InvokeMethod(2113_0_createList_Return, x1) → 2113_0_createList_Return
567_1_createList_InvokeMethod(492_0_createList_Return, 0) → 696_0_createList_Return
567_1_createList_InvokeMethod(696_0_createList_Return, x1) → 2113_0_createList_Return
567_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0) → 1538_0_createList_InvokeMethod(x0)
567_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1628_0_createList_Return, x1) → 2113_0_createList_Return
567_1_createList_InvokeMethod(2113_0_createList_Return, x1) → 2113_0_createList_Return

The integer pair graph contains the following rules and edges:
(0): 480_0_CREATELIST_GT(x0[0]) → COND_480_0_CREATELIST_GT(x0[0] > 0, x0[0])
(1): COND_480_0_CREATELIST_GT(TRUE, x0[1]) → 480_0_CREATELIST_GT(x0[1] - 1)

(0) -> (1), if ((x0[0] > 0* TRUE)∧(x0[0]* x0[1]))


(1) -> (0), if ((x0[1] - 1* x0[0]))



The set Q consists of the following terms:
480_0_createList_GT(0)
836_1_createList_InvokeMethod(492_0_createList_Return, 0)
836_1_createList_InvokeMethod(696_0_createList_Return, x0)
836_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0)
836_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x0), x1)
836_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x2)
836_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x0), x1)
836_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x0), x1)
836_1_createList_InvokeMethod(1628_0_createList_Return, x0)
836_1_createList_InvokeMethod(2113_0_createList_Return, x0)
567_1_createList_InvokeMethod(492_0_createList_Return, 0)
567_1_createList_InvokeMethod(696_0_createList_Return, x0)
567_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0)
567_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x0), x1)
567_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x2)
567_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x0), x1)
567_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x0), x1)
567_1_createList_InvokeMethod(1628_0_createList_Return, x0)
567_1_createList_InvokeMethod(2113_0_createList_Return, x0)

(29) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 480_0_CREATELIST_GT(x0) → COND_480_0_CREATELIST_GT(>(x0, 0), x0) the following chains were created:
  • We consider the chain 480_0_CREATELIST_GT(x0[0]) → COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0]), COND_480_0_CREATELIST_GT(TRUE, x0[1]) → 480_0_CREATELIST_GT(-(x0[1], 1)) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]480_0_CREATELIST_GT(x0[0])≥NonInfC∧480_0_CREATELIST_GT(x0[0])≥COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])∧(UIncreasing(COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (1) using rule (IV) which results in the following new constraint:

    (2)    (>(x0[0], 0)=TRUE480_0_CREATELIST_GT(x0[0])≥NonInfC∧480_0_CREATELIST_GT(x0[0])≥COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])∧(UIncreasing(COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_20] + [(2)bni_20]x0[0] ≥ 0∧[(-1)bso_21] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_20] + [(2)bni_20]x0[0] ≥ 0∧[(-1)bso_21] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_20] + [(2)bni_20]x0[0] ≥ 0∧[(-1)bso_21] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x0[0] ≥ 0 ⇒ (UIncreasing(COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_20 + (2)bni_20] + [(2)bni_20]x0[0] ≥ 0∧[(-1)bso_21] ≥ 0)







For Pair COND_480_0_CREATELIST_GT(TRUE, x0) → 480_0_CREATELIST_GT(-(x0, 1)) the following chains were created:
  • We consider the chain COND_480_0_CREATELIST_GT(TRUE, x0[1]) → 480_0_CREATELIST_GT(-(x0[1], 1)) which results in the following constraint:

    (7)    (COND_480_0_CREATELIST_GT(TRUE, x0[1])≥NonInfC∧COND_480_0_CREATELIST_GT(TRUE, x0[1])≥480_0_CREATELIST_GT(-(x0[1], 1))∧(UIncreasing(480_0_CREATELIST_GT(-(x0[1], 1))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(480_0_CREATELIST_GT(-(x0[1], 1))), ≥)∧[2 + (-1)bso_23] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(480_0_CREATELIST_GT(-(x0[1], 1))), ≥)∧[2 + (-1)bso_23] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(480_0_CREATELIST_GT(-(x0[1], 1))), ≥)∧[2 + (-1)bso_23] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(480_0_CREATELIST_GT(-(x0[1], 1))), ≥)∧0 = 0∧[2 + (-1)bso_23] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 480_0_CREATELIST_GT(x0) → COND_480_0_CREATELIST_GT(>(x0, 0), x0)
    • (x0[0] ≥ 0 ⇒ (UIncreasing(COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_20 + (2)bni_20] + [(2)bni_20]x0[0] ≥ 0∧[(-1)bso_21] ≥ 0)

  • COND_480_0_CREATELIST_GT(TRUE, x0) → 480_0_CREATELIST_GT(-(x0, 1))
    • ((UIncreasing(480_0_CREATELIST_GT(-(x0[1], 1))), ≥)∧0 = 0∧[2 + (-1)bso_23] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(480_0_createList_GT(x1)) = [-1]   
POL(0) = 0   
POL(492_0_createList_Return) = [-1]   
POL(836_1_createList_InvokeMethod(x1, x2)) = [-1]   
POL(1628_0_createList_Return) = [-1]   
POL(696_0_createList_Return) = [-1]   
POL(2113_0_createList_Return) = [-1]   
POL(957_0_createList_InvokeMethod(x1)) = [-1]   
POL(1538_0_createList_InvokeMethod(x1)) = [-1]   
POL(1095_0_createList_InvokeMethod(x1)) = [-1]   
POL(1112_0_createList_InvokeMethod(x1, x2)) = [-1]   
POL(1358_0_createList_InvokeMethod(x1)) = [-1]   
POL(567_1_createList_InvokeMethod(x1, x2)) = [-1]   
POL(480_0_CREATELIST_GT(x1)) = [2]x1   
POL(COND_480_0_CREATELIST_GT(x1, x2)) = [2]x2   
POL(>(x1, x2)) = [-1]   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(1) = [1]   

The following pairs are in P>:

COND_480_0_CREATELIST_GT(TRUE, x0[1]) → 480_0_CREATELIST_GT(-(x0[1], 1))

The following pairs are in Pbound:

480_0_CREATELIST_GT(x0[0]) → COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])

The following pairs are in P:

480_0_CREATELIST_GT(x0[0]) → COND_480_0_CREATELIST_GT(>(x0[0], 0), x0[0])

There are no usable rules.

(30) Complex Obligation (AND)

(31) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
480_0_createList_GT(0) → 492_0_createList_Return
836_1_createList_InvokeMethod(492_0_createList_Return, 0) → 1628_0_createList_Return
836_1_createList_InvokeMethod(696_0_createList_Return, x1) → 2113_0_createList_Return
836_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0) → 1538_0_createList_InvokeMethod(x0)
836_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1628_0_createList_Return, x1) → 2113_0_createList_Return
836_1_createList_InvokeMethod(2113_0_createList_Return, x1) → 2113_0_createList_Return
567_1_createList_InvokeMethod(492_0_createList_Return, 0) → 696_0_createList_Return
567_1_createList_InvokeMethod(696_0_createList_Return, x1) → 2113_0_createList_Return
567_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0) → 1538_0_createList_InvokeMethod(x0)
567_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1628_0_createList_Return, x1) → 2113_0_createList_Return
567_1_createList_InvokeMethod(2113_0_createList_Return, x1) → 2113_0_createList_Return

The integer pair graph contains the following rules and edges:
(0): 480_0_CREATELIST_GT(x0[0]) → COND_480_0_CREATELIST_GT(x0[0] > 0, x0[0])


The set Q consists of the following terms:
480_0_createList_GT(0)
836_1_createList_InvokeMethod(492_0_createList_Return, 0)
836_1_createList_InvokeMethod(696_0_createList_Return, x0)
836_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0)
836_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x0), x1)
836_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x2)
836_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x0), x1)
836_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x0), x1)
836_1_createList_InvokeMethod(1628_0_createList_Return, x0)
836_1_createList_InvokeMethod(2113_0_createList_Return, x0)
567_1_createList_InvokeMethod(492_0_createList_Return, 0)
567_1_createList_InvokeMethod(696_0_createList_Return, x0)
567_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0)
567_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x0), x1)
567_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x2)
567_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x0), x1)
567_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x0), x1)
567_1_createList_InvokeMethod(1628_0_createList_Return, x0)
567_1_createList_InvokeMethod(2113_0_createList_Return, x0)

(32) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(33) TRUE

(34) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
480_0_createList_GT(0) → 492_0_createList_Return
836_1_createList_InvokeMethod(492_0_createList_Return, 0) → 1628_0_createList_Return
836_1_createList_InvokeMethod(696_0_createList_Return, x1) → 2113_0_createList_Return
836_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0) → 1538_0_createList_InvokeMethod(x0)
836_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
836_1_createList_InvokeMethod(1628_0_createList_Return, x1) → 2113_0_createList_Return
836_1_createList_InvokeMethod(2113_0_createList_Return, x1) → 2113_0_createList_Return
567_1_createList_InvokeMethod(492_0_createList_Return, 0) → 696_0_createList_Return
567_1_createList_InvokeMethod(696_0_createList_Return, x1) → 2113_0_createList_Return
567_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0) → 1538_0_createList_InvokeMethod(x0)
567_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x1), x3) → 1538_0_createList_InvokeMethod(x3)
567_1_createList_InvokeMethod(1628_0_createList_Return, x1) → 2113_0_createList_Return
567_1_createList_InvokeMethod(2113_0_createList_Return, x1) → 2113_0_createList_Return

The integer pair graph contains the following rules and edges:
(1): COND_480_0_CREATELIST_GT(TRUE, x0[1]) → 480_0_CREATELIST_GT(x0[1] - 1)


The set Q consists of the following terms:
480_0_createList_GT(0)
836_1_createList_InvokeMethod(492_0_createList_Return, 0)
836_1_createList_InvokeMethod(696_0_createList_Return, x0)
836_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0)
836_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x0), x1)
836_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x2)
836_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x0), x1)
836_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x0), x1)
836_1_createList_InvokeMethod(1628_0_createList_Return, x0)
836_1_createList_InvokeMethod(2113_0_createList_Return, x0)
567_1_createList_InvokeMethod(492_0_createList_Return, 0)
567_1_createList_InvokeMethod(696_0_createList_Return, x0)
567_1_createList_InvokeMethod(957_0_createList_InvokeMethod(x0), x0)
567_1_createList_InvokeMethod(1095_0_createList_InvokeMethod(x0), x1)
567_1_createList_InvokeMethod(1112_0_createList_InvokeMethod(x0, x1), x2)
567_1_createList_InvokeMethod(1358_0_createList_InvokeMethod(x0), x1)
567_1_createList_InvokeMethod(1538_0_createList_InvokeMethod(x0), x1)
567_1_createList_InvokeMethod(1628_0_createList_Return, x0)
567_1_createList_InvokeMethod(2113_0_createList_Return, x0)

(35) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(36) TRUE